Home » Archimedes archive » Acorn User » AU 1998-05 B.adf » PRMs » Wimp

Wimp

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 1998-05 B.adf » PRMs
Filename: Wimp
Read OK:
File size: 2E158 bytes
Load address: 0000
Exec address: 0000
File contents
HELP(�����,���,$DIR$44`H������+�
Msg_�H����ހ+,ColourPicker_�H���߀+�DragASprite_\�H����߀+�FilerAction_�H����+�Filter_T�H���p�+�Free_��H����+�TaskManager_D�H���-[��swis�H���8�+�Wimp_�H����8�*l!root��H���ˆ�+�
aboutl�H������+PTaskWindow_�G����(GԄ3!Pre��G���۬��3devices��H�����+�DDEUtils_H�H����1�3topicsDIR$�
�
�H�������0�H���r��&�1�G����d�֒10HG���m�֊11�E������11_flags�G���ʎ���12|E������12_flagsG���D���s2�H���9U�&�3PG������L4�H����(�400@ G���o���D40040�!H���c1(�400C00$G�����և400C1�%H�����&S400C2'H�����&�400C3�'H���"L(400C4�(H���0��&�400C5x+H���G�&d400C6�,H���w��&400C7�-G����R�ֹ400c9�.H���J+&401�/G���4g��k42580$0G����]��F42581l0G����l��>42582�0G���Zr��z42583(1G�����~42584�1G�����B42585�1G�������\42586H2G���[��145d80|4G�������45d81P7G�����և45d82�8G�����D45d83:G���J��245d84P<H���`��&5P>G������E502�?H���%��&9503�AG���N.��s6HBG����>��7HCH����P*&$8lGG����j��180140�IG�����%808c0�JG���*���808c1�KG������7808c2�LG������a808c30MG������_808c4�MG���13���808c5tOG���8��b808c6�OG���P��w808c7PPG���(���80e1eQG����<��d80e21|SG���SM��a80e22�TG���nQ���80e23�UH����n*&�9�WG�������FA�XG���Q����extedit�\G����OZ��newsbase�`H������&G503Codes�rH����Ā+ NB_��H���թ�*400CC�G����z��%80141��H����s^%�80142��G���w��֝80143|�H���,o^%�80144<�G���R���^80145��G���i�֭80146L�G���B�֒80147��H�����'�8014C��G���o��f8014d�G�����ַ8014E��H���b���8014f��G���]���80150d�G���H��ָ80151�G�����֩80152��G�����q80153<�G����"Γ
exteditclientH�G����%Γ�extediteditor�F���Lj�"�ExtEditJobHandle��F���X��"ExtEditFlags��F���S�M ExtEditCursorUnits��G���S)ΓcexteditdatatypesH�G����/��exteditsubtypes@�G���h4��exteditmoderatorD�G����o��ExtEditVariable<�G������8DAB00t�H���{� )DAB01��G����X��G81400��G���C���83580��G�����H�Y83582�G���~�H�~	83581�H����(c!Root�G����H���B�G���I\���C�H����~��F`G���
���400C8�H���&ـ+�PlugIn_[H�������400CA�\H������400CB�]H����7�&402�`H������&�403�aH������&i404�bH�����(�405|jH���[��&C406�kH�����&�407�nH���G�(�	500<xH���l�&�501�yH���i��&�D�|H�����*&�E�}H���F.i*@45D85DATA�Quit (0)
#Parent MSG_
On receiving this broadcast message, the task should tidy up, call <Wimp_CloseDown> and <OS_Exit=>OS:OS_Exit>.

If task doesn't want to quit, it should have said so when it received the <PreQuit=>Msg_8> message.DATA�Message_DataSave (1)
#Parent MSG_
20	destination	window handle
24	 		icon handle
28	 		screenx
32	 		screeny
36	estimated size
40	<filetype=>Filetypes:!Root> of data
	&1000 for directory, &2000 for application, -1 for untyped.
44	proposed leafname, 0-terminated

This indicates that the sender wants to save data to the receiver

Normal use:
  �	User has terminated a drag.
  �	You get the first four words with <Wimp_GetPointerInfo>
  �	You send message to mentioned window.

Possible responses from other task:
  �	It sends <DataSaveAck=>Msg_2>
  �	It sends <RamFetch=>Msg_6>

You should store the my_ref of each data save message, to check against any future <DataSaved=>Msg_D> message you might recieve.
DATA�Message_DataRequest  (&10)
#Parent MSG_
+ 20	window handle
+ 24	internal handle
+ 28	x
+ 32	y
+ 36	= 2
+ 40	list of filetypes in order of preference, terminated by -1

Receiver should ignore this message if bit 2 isn't set.

This message is broadcasted by a task who wants to paste the contents of the clipboard into its own document. When the owner of the clipboard receives this message, it should choose the earliest filetype in the list that it can provide (or use native format if none) and reply with a <DataSave=>Msg_1> message.

When the "Paster" receives this, it should check the filetype and just ignore the message if it can't handle it.
DATA�Message_Dragging  (&11)
#Parent MSG_
+ 20	window handle
+ 24	icon handle
+ 28	x
+ 32	y
+ 36	<flags=>Msg_11_flags>
+ 40	bounding box
+ 56	list of filetypes, terminated with -1

This message is sent continuously by the task which is doing the dragging. Initially it is broadcasted, but after a task claims the message, it is only sent to that. Claim by sending <DragClaim=>Msg_12> messageDATA�Flags
Bit	Meaning when set
#Line
 1	Sending data from selection
 2	Sending data from clipboard
 3	Source data will be deleted
 4	Do NOT claim this message

All other bits reserved and 0.DATA�Message_DragClaim  (&12)
#Parent MSG_
+ 20	<flags=>Msg_12_flags>
+ 24	list of filetypes, terminated with -1

This message is sent as a reply to a <Dragging=>Msg_11> message to inform the sender that we can receive data.DATA�Flags
Bit	Meaning when set
#Line
 0	Have changed pointer shape
 1	Remove wimp dragbox
 3	Source should be deleted

All other bits reserved and 0.DATAsMessage_DataSaveAck (2)
#Parent MSG_
+ 20	destination	window handle
+ 24	 		icon handle
+ 28	 		screenx
+ 32	 		screeny
+ 36	estimated size, or -1 if 'unsafe'
+ 40	<filetype=>Filetypes:!Root> of data
+ 44	full pathname (or "\<Wimp$Scrap\>")

Words at 20 to 32 are preserved from <DataSave=>Msg_1> message. This is usually followed by a <DataLoad=>Msg_3> message.
DATA�Message_DataLoad  (3)
#Parent MSG_
+ 20	Dest window handle
+ 24	icon handle
+ 28	x coord
+ 32	y coord
+ 36	Estimated size
+ 40	<filetype=>Filetypes:!Root>
+ 44	full pathname
+ /n/	column of file in current selection
+ /n/ + 4	row of file in current selection

Receiver of message should load, and answer with <DataLoadAck=>Msg_4> if success. The column and row information stored word aligned after the pathname is not present in RISC OS 2.
DATALMessage_DataLoadAck  (4)
#Parent MSG_
+ 20	Dest window handle
+ 24	icon handle
+ 28	x coord
+ 32	y coord
+ 36	Estimated size
+ 40	<filetype=>Filetypes:!Root>
+ 44	full pathname

This is sent as an answer to a <DataLoad=>Msg_3> message. All that should be done, is to change message type to 4, and fill in the your_ref field.DATA�Message FilerOpenDir (&400)
#Parent MSG_
+ 20	<filing system number=>OS:fsys_ident>
+ 24	flag, bit 0 set to prevent canonicalisation of name before using
+ 28	name of directory, zero terminated

This message should be broadcast to instruct the filer to open a directory. Filing system modules use <Service_StartFiler=>OS:Service_4B> to record the Filer's task handle and hence do not use a broadcast message.
DATADNotify (&40040)
#Parent MSG_
+ 20	Sending station number
+ 21	Its network number
+ 22	Five-byte real time on reciept
+ 27	Message

This message is broadcasted by the NetFiler to enable some task to display a *Notify command. If no one acknowledges the message, the NetFiler will display it using <Wimp_ReportError>.
DATA�Message_MenuWarning  (&400C0)
#Parent MSG_
+ 20	'Submenu pointer' from menu item
+ 24	x coord of top left new submenu
+ 28	y coord of top left new submenu
+ 32	Selection list (as in <MenuSelection=>wimp_poll9>)

You receive this message when pointer moves over the submenu arrow in a menu entry with the 'generate message' bit set.

You can use the 'submenu pointer' and/or the selection list, to decide which window or menu to open with <Wimp_CreateSubMenu>. The submenu you actually open doesn't have to be the same as the one passed to you at +20. However, if you wish the submenu to be re-opened when the Wimp recreates the menu you should store the new handle at +20.
DATA�Message_ModeChange (&400C1)
<Wimp_SetMode> causes this message to be broadcasted. You should *not* acnowledge this message.

After sending this message, the Wimp sends an Open_Window_Request event for each window.

You must not delete any window. If you want to delete a window, then just mark it to be deleted, and do the deed when you receive the <Open window request=>wimp_poll2>.DATASMessage_TaskInitialise (&400C2)
#Parent MSG_
+ 4	task handle
+ 20	<currently active object pointer=>OS:OS_handlers_cao>
+ 24	slot size
+ 28	Task name given to Wimp_Initialise, *control* terminated

This message is broadcast when a task calls <Wimp_Initialise>. The fields are set so that it appears to originate from the new task.
DATA�Message_TaskCloseDown (&400C3)
#Parent MSG_
+ 4	Task handle

This message is broadcast when a task calls <Wimp_CloseDown>. The fields are set so that it appears to originate from the dying task.
DATASlotSize (&400C4)
#Parent MSG_
+ 4	Task Handle which owns slot
+ 20	New slotsize
+ 24	New size of the Next slot

This message is broadcast after <Wimp_SlotSize> is called. It is mainly used by the task manager to update its display. This message should not be acknowledged.
DATA�SetSlot (&400C5)
#Parent MSG_
+ 20	New slotsize
+ 24	Owner's taskhandle

This message is broadcast when the user tries to alter a task's slot size by dragging the "memorybar" in the task manager. If a task can cope with this, it should first check the taskhandle, acknowledge the message and then call <Wimp_SlotSize>.

This message is also sent by the task manager when the task is started. If this, or any later message, is *not* acknowledged, the task will get a green memorybar in the task manager (instead of a red one) and will not receive this message again; it will not be possible for the user to alter the task's slotsize.
DATAdTaskNameRq (&400C6)
#Parent MSG_
+ 20	Handle of other task

This message can be used if your task want to find out the name of another task. Broadcast this message with correct handle, and the task mamager will respond with a <TaskNameIs=>Msg_400C7> message. RISC OS 3 provides <TaskManager_TaskNameFromHandle>, which should be used in preference.
DATATaskNameIs (&400C7)
#Parent MSG_
+ 20	Handle of task
+ 24	Task's slotsize
+ 28	Taskname

This message is sent by the task manager in response to a <TaskNameRq=>Msg_400C6> message. RISC OS 3 provides <TaskManager_TaskNameFromHandle>, which should be used in preference.
DATA�Message_MenusDeleted  (&400C9)
#Parent MSG_
+ 20	Pointer to menu block (<Wimp_CreateMenu>)

This message is sent when your menu was closed without a selection having been made. DATAMessage FilerCloseDir (&401)
#Parent MSG_
+ 20	<filing system number=>OS:fsys_ident>
+ 24	flag, bit 0 set to prevent canonicalisation of name before using.
+ 28	name of directory, zero terminated.

All directories starting with given name will be closed.
DATAkDDEUtils_ThrowbackStart  (&42580)
#Parent MSG_
Initiates a throwback session for the current task.
DATAFDDEUtils_ProcessingFile  (&42581)
#Parent MSG_
 + 20	Filename
DATA>DDEUtils_ErrorsIn  (&42582)
#Parent MSG_
+ 20	FilenameDATAzDDEUtils_ErrorDetails  (&42583)
#Parent MSG_
+ 20	Linenumber
+ 24	0,1,2 for warning,error,serious
+ 28	DescriptionDATA~DDEUtils_ThrowbackEnd  (&42584)
#Parent MSG_
This message notifies the throwback server that the throwback has ended.
DATABDDEUtils_InfoForFile  (&42585)
#Parent MSG_
+ 20	Filename
DATA\DDEUtils_InfoDetails  (&42586)
#Parent MSG_
+ 20	Linenumber
+ 24	0
+ 28	Description
DATA1Message_EditRq  (&45D80)
#Parent MSG_
+ 20	<Data type word=>Msg_ExtEditDatatypes> (filetype + subtype)
+ 24	<Job handle=>Msg_ExtEditJobHandle>
+ 28	<Flag word=>Msg_ExtEditFlags>
+ 32	Name of parent	(max 20 chars including zero)
+ 52	Name of file	(max 20 chars including zero)

This message is broadcasted by a "client" when it wishes someone to edit its data. If "editor" recognises filetype and subtype, it should acknowledge this message by sending an <EditAck=>Msg_45d81> message.

This message is part of the "<External Edit=>Msg_ExtEdit>" protocol.DATA�Message_EditAck  (&45D81)
#Parent MSG_
+ 20	<Data type word=>Msg_ExtEditDatatypes> (filetype + subtype)
+ 24	<Job handle=>Msg_ExtEditJobHandle>
+ 28	<Flag word=>Msg_ExtEditFlags>

This message is returned by the "editor" after receiving an <EditRq=>Msg_45d80> message from a "client". Editor sets the top 16 bits of the Job Handle to a unique value, and both tasks will from now on use the full 32 bit word as a unique job handle. Editor may also change some bits in the Flag Word.

Editor should create and open an empty document. If the "client" wants to, it might fill the empty doc with data by sending an <EditDataSave=>Msg_45d84> message.

This message is part of the "<External Edit=>Msg_ExtEdit>" protocol.DATA�Message_EditReturn  (&45D82)
#Parent MSG_
+ 20	<Data type word=>Msg_ExtEditDatatypes> (filetype + subtype)
+ 24	<Job handle=>Msg_ExtEditJobHandle>
+ 28	<Flag word=>Msg_ExtEditFlags>

This message is sent by the "client" when it wants its data back. Editor should respond with an <EditDataSave=>Msg_45d84> message.

This message is part of the "<External Edit=>Msg_ExtEdit>" protocol.DATADMessage_EditAbort  (&45D83)
#Parent MSG_
+ 20	0
+ 24	<Job Handle=>Msg_ExtEditJobHandle>

This message can be sent by both "client" and "editor". No questions should be asked. The sender of this message is responsible for any messages to the user.

This message is part of the "<External Edit=>Msg_ExtEdit>" protocol.DATA2Message_EditDataSave (&45D84)
#Parent MSG_
+ 20	<Job handle=>Msg_ExtEditJobHandle>
+ 24	reserved
+ 28	reserved
+ 32	reserved
+ 36	Estimated size
+ 40	<Filetype=>Filetypes:!Root> ({*}Not{*} Datatype)
+ 44	Proposed leafname

This message is very similar to the standard <DataSave=>Msg_1> message, and from here on the standard Data Transfer Protocol is used. (ie: it is answered with <DataSaveAck=>Msg_2> or <RamFetch=>Msg_6>)
Note that the "client" can send this message several times.

This message is part of the "<External Edit=>Msg_ExtEdit>" protocol.DATAMessage_DataOpen  (5)
#Parent MSG_
+ 20	Window handle of directory viewer
+ 24	unused
+ 28	x offset of icon clicked
+ 32	y offset of icon clicked
+ 36	0
+ 40	<filetype=>Filetypes:!Root>, &3000 for untyped files.
+ 44	full pathname

This message is broadcasted when the user doubleclicks on a file. If the receiver wants to load the file, he should acknowledge this message by returning a <DataLoadAck=>Msg_4> message.
If no one acknowledges the message, the filer will try to <run=>OS:OS_FSControl4> it.
DATAEMessage_HelpRequest (&502)
#Parent MSG_
+ 20	Mouse x
+ 24	Mouse y
+ 28	Button state
+ 32	Window handle, or -1 if no window
+ 36	Icon handle, or -1 if no icon
 
The !Help application sends out this message.

If you want to give some simple help on the given window/icon, then reply with a <HelpReply=>Msg_503> message.DATA9Message_HelpReply (&503)
#Parent MSG_
+ 20	zero terminated help-string

This message is sent by an application in reply to a <HelpRequest=>Msg_502> message.

# Eh? Control terminated or Null terminated... ah
Max length = 256-20-1 = 235 chars. <Escape codes=>Msg_503Codes> may be used under RISC OS 3 !Help or equivalent.

The current !Help implementation passes the message block direct to <OS_GSTrans=>OS:OS_GSTrans> before checking for "\\" escape codes - hence passing CR or LF terminated strings and using "|" codes other than {fCode}|M{f} is undocumented.
DATAsMessage_RamFetch (6)
#Parent MSG_
+ 20	pointer to buffer where receiver should put data
+ 24	size of bufferDATAMessage_RamTransmit (7)
#Parent MSG_
+ 20	pointer to buffer from RamFetch message
+ 24	amount of data written to the buffer

After recieving a RamFetch message, you write data to buffer, using <Wimp_TransferBlock>, and then send back this message.
DATA$Message_PreQuit (8)
#Parent Msg_
+ 20	flag, 0 if closedown, not if single-quit
	(check the block length - if \< 20 bytes assume a flag word of 0)

This message is broadcasted when Ctrl-Shift F12 is pressed. It is also sent to a specific task, when the user tries to quit it from the task display menu.

If you have no objections to being killed, then ignore this message, and you will eventually receive a <Quit message=>Msg_0>.

If you object to being killed (unsaved data..), you should <acknowledge=>wimp_sendmessage3> this message, and then open a dialogue box asking the user what to do. If the user chooses to quit and the 'flag' was zero, you are supposed to restart the closedown sequence by emitting a Ctrl-Shift F12 (508), using <Wimp_ProcessKey>.

The 'flag' is new under RO3. Under RO2 there was no way of knowing if only your task was being quit, or the whole desktop.

Note that the protocol is still buggy, in that if closedown has been initiated by 'Exit' on the taskmanager menu, then it will be restarted by the program as 'Shutdown'
DATA1Message PrintFile  (&80140)
#Parent MSG_
+ 20	destination	window handle
+ 24	 		icon handle
+ 28	 		screenx
+ 32	 		screeny
+ 36	estimated size
+ 40	<filetype=>Filetypes:!Root> of data
+ 44	proposed leafname, 0-terminated

This message is sent by !Printers when it receives a DataSave or PrintSave message. The task can do the following :

  *	Ignore. !Printers will send <DataSaveAck=>Msg_2>, to save the file for later printing.
  *	Respond with <WillPrint=>Msg_80141>, to send data to Printer:
  *	Put data in Printer$Temp and send <DataLoad=>Msg_3>.DATA%TaskWindow_Input  (&808C0)
#Parent MSG_
+ 4	Child's task id
+ 20	Size
+ 24	Data...

This message is used to give input data (key presses) to the child task. Larger amounts of data can be sent with the Data Transfer Protocol. Just send a DataSave message, and wait for RamFetch message.DATA�TaskWindow_Output  (&808C1)
#Parent MSG_
+ 4	Child's task id
+ 20	size (max 232 bytes)
+ 24	data

This message is sent when child has produced output data. Acknowledge message, and display data.DATA7TaskWindow_Ego  (&808C2)
#Parent MSG_
+ 4	Task handle of child.
+ 20	Parent's txt-handle.

This message is sent to your task after you've issued a *StartTask .... -txt &xxxxxxxx  command. This is the first and last time the txt-handle will be used. From now on, the child's task-id will be used instead.DATAaTaskWindow_Morio  (&808C3)
#Parent MSG_
This message is sent to parent when child exits. DATA_TaskWindow_Morite  (&808C4)
#Parent MSG_
This message is sent by parent to kill child. DATA�TaskWindow_NewTask  (&808C5)
#Parent MSG_
+ 20	Command to execute

This message is broadcasted by the Taskwindow module when a *TaskWindow command have been executed without proper -task and -txt flags. If receiving task can support taskwindows, it should acknowledge this message, and Wimp_StartTask

#Indent 2;Tab
"\<String at +20> xxxxxxxx yyyyyyyy "

xxxxxxxx	: Your task handle   (hex)
yyyyyyyy	: Unique texthandle  (hex)
#Indent

Note the extra space after texthandle.DATAbTaskWindow_Suspend  (&808C6)
#Parent MSG_
This message is sent by parent to suspend child.DATAwTaskWindow_Resume  (&808C7)
#Parent MSG_
This message is sent by parent to resume a previously suspended child.DATA�Message_OLEFileChanged  (&80E1E)
#Parent Msg_
+ 20	Message type :

	if type = 0
+ 24	Session number
+ 28	Full pathname of data

	if type = 1
+ 24	Session number (ie. pathname is unchanged)
DATAdMessage_OLEOpenSession  (&80E21)
#Parent MSG_
+ 20	Unique Name (16 byte, padded with zeros)
+ 36	Window handle
+ 40	x
+ 44	y
+ 48	Session type :

	if type = 0 or 1 (edit file)
 + 52	Session number
 + 56	Filetype
 + 60	Full pathname

	if type = 2 (re-edit file)
 + 52	Session number

Session type 0 is used initially/normally. If this returns unanswered, then client should try to run the server, and then send this message again, but with type 1. If this also returns the server was either not started or is not capable of handling the request.

Session type 2 is used when a link already is established.DATAaMessage_OLEOpenSessionAck  (&80E22)
#Parent MSG_
This is returned in reply to an OLEOpenSession message. Server has loaded file, and has established the link.

What should happen if server gets an error while reading file? (Protection or not enough memory) It should probably send this message immediately followed by an OLECloseSession message.DATA�Message_OLECloseSession  (&80E23)
#Parent MSG_
+ 20 Message type:
+ 24 Session number (-1 for all)

This message informs one or all clients that one or all of the servers sessions are terminated (Task quit or click on close window)DATA�Message_PaletteChange (9)
#Parent Msg_
This message is broadcasted by the palette utility when the RGB value for one or more physical colours have changed. <Message_ModeChange=>MSG_400C1> is broadcast *instead* of this message at a mode change.

In 256 colour modes, it is not the physical colour which changes, but only the mapping from logical to physical colour. In that case the palette utility itself forces a redraw of the whole screen.
DATAFMessage_SaveDesktop (10)
#Parent MSG_
+20	file handle of desktop file being written as a word
+24	flags, at present reserved (must be 0)

This message is broadcasted by the task manager when the user has selected "Save boot file", or on exit from desktop if the system variable SaveDesk$File has a value (a pathname..)DATA�External Edit Protocol    
#Align Centre
{*}Designed by <Jason Williams=>Msg_ExtEditModerator>{*}
Version 1.02S, 30 Mar 1996 (from 1.02, 1 Jan 1993)
#Align

The protocol consists of these five messages :
    
   <Message_EditRq=>Msg_45d80>
   <Message_EditAck=>Msg_45d81>
   <Message_EditReturn=>Msg_45d82>
   <Message_EditAbort=>Msg_45d83>
   <Message_EditDataSave=>Msg_45d84>
   <Message_EditCursor=>Msg_45d85>

The purpose of the protocol is to allow one task (the "<Clients=>Msg_ExtEditClient>") to send its data to another task (the "<Editor=>Msg_ExtEditEditor>") for editing, without forcing the user to "drag things all over the place.."

Applications supporting the protocol include :
Clients :
#Indent 2
#Table Lines 2
!OLRead
!JFAddress
!NoteIt
!FidoMail
!MakeARPC
#EndTable
#Indent

Editors :
#Indent 2
#Table Lines 2
!StrongED
!Zap 1.20
!DJF-JRF
!FormEdExt
#EndTable
#Indent

How useful this protocol will be, depends on how many tasks support it, both as "Client" and "Editors".
DATA�NewsBase message protocol
Three messages are defined:
#Indent 2
<NewsBase_Command=>Msg_83580>	used by a client to issue commands or requests to NewsBase
<NewsBase_Reply=>Msg_83581>		used by newsbase to respond
<NewsBase_Update=>Msg_83582>		broadcast by newsbase to inform clients of changes to the news database
#Indent 0

The commands implemented are based very loosely on the NNTP commands documented in RFC977 (more in spirit than in form). While the NewsBase commands are primarily designed to retrieve news from a locally-held news database managed by NewsBase, their nature should make it possible for future versions of newsbase to act as a mediator between a client reader and a directly-connected nntp server (through ethernet and Acorn TCP/IP, or whatever) - ie, one of the purposes of the command set is to act as an abstraction layer between the reader program and the source of news.

(This data extracted from the Docs.Messages file in !NewsBase by Justin Fletcher)DATAGRISC OS 3 !Help codes
Code	Message
#Line
\\R	"Move the pointer right to "
\\G	"This option is greyed out because "
\\S	"Click SELECT to "
\\A	"Click ADJUST to "
\\T	"This is the "
\\W	"This window is "
\\D	"Drag SELECT to "
\\d	"Drag ADJUST to "
\\w	"window"
\\s	"SELECT"
\\a	"ADJUST"
|M	return

By RISC OS 3.7 there are additional codes:

\\0	" for triangles (in multiples of the path width)."
\\1	"ing"
\\2	" in the "
\\3	"ed "
\\4	" the general public"
\\5	"path element"
\\6	"text line"
\\7	"ress "
\\8	"e the "
\\9	"Click here or type "
\\@	" the "
\\B	"lick  "
\\C	" to "
\\E	"select"
\\F	"sprite"
\\H	"directory"
\\I	" object"
\\J	"change the "
\\K	" this "
\\L	"Click  (or press "
\\M	"tion"
\\N	" and "
\\O	"display"
\\P	" the current"
\\Q	"file"
\\U	" information about"
\\V	"This "
\\X	"application"
\\Y	" of the "
\\Z	"colour"
\\^	"Move the pointer right"
\\_	"character"
\\b	" or "
\\c	" this sprite, at the position you were pointing at when you pressed MENU."
\\e	" in"
\\f	" of "
\\g	"control"
\\h	"number"
\\i	" a "
\\j	" operation"
\\k	"Double-click "
\\l	"path"
\\m	"To paint each "
\\n	" with"
\\o	"icon"
\\p	"ent"
\\q	"The Force option determines whether or not locked objects will be deleted."
\\r	"e the sprite in the selected sprite file on the desktop background."
\\t	" for"
\\u	"selected object"
\\v	" grid point"
\\x	" the disc in drive "
\\y	" file server"
\\z	"change"
\\�	" entry mode"
\\�	"This option is shaded because "
\\�	" from"
\\�	"Drag SELECT to copy the "
\\�	"To paint each ellipse, click  at its centre, at a point that gives the width at the centre, and at a point on the edge."
\\�	"sort the items in this directory by their "
\\�	"all"
\\�	"Click  for "
\\�	"This line shows that "
\\�	" a save box"
\\�	"paint "
\\�	"rectangle"
\\�	" Either fill in the numerator and denominator, or click  on the arrows, to use the given zoom factor."
\\�	" click  at the circle centre, and at the start and end of the "
\\�	": click on a preselected common value, or type in any value in the bottom field and press RETURN."
\\�	" you"
\\�	"create a new "
\\�	"move the icon."
\\�	"n the "
\\�	"Either drag  from the file icon to a directory display, or fill in the name of a file and click  on OK, to save as a "
\\�	"Type a number and "
\\�	"available"
\\�	" to the "
\\�	"distance between major grid points"
\\�	" used for text lines (in points)."
\\�	"These radio buttons control the "
\\�	"determine whether or not"
\\�	"name"
\\�	" is "
\\�	" which"
\\�	"hen "
\\�	"inboard"
\\�	"selection"
\\�	"enter a new file type for"
\\�	"width"
\\�	"display the "
\\�	"choose the "
\\�	"drawing"
\\�	"memory"
\\�	"TinyDirs"
\\�	"change the number of minor grid points per major grid point."
\\�	"disc"
\\�	"horizontally"
\\�	"line"
\\�	" will "
\\�	" the current colour�colour found when plotted."
\\�	"height"
\\�	"t the "
\\�	"toggle the presence"
\\�	"string"
\\�	"contents"
\\�	"desktop"
\\�	"screen "
\\�	" information"
\\�	" you want to "
\\�	"amount by which line numbers used for text lines (in points). incremented for each new BASIC line."
\\�	"press Return"
\\�	"RETURN"
\\�	"SELECT to "
\\�	"Move the pointer right (or press "
\\�	"width of the work used for text lines (in points).a of an Edit , in terms of system font characters."
\\�	"background"
\\�	"grid"
\\�	" this sprite"
\\�	"To paint each circle, click  at its centre and then at a point on the edge."
\\�	"Click  or type "
\\�	"answer the question."
\\�	"back up the disc in drive "
\\�	"To paint each rectangle, click  at two opposite corners of the rectangle within the sprite ."
\\�	"selected "
\\�	"determine the free space o"
\\�	"This is"
\\�	"search"
\\�	"window"
\\�	"To paint each parallelogram, click  at three different corners."
\\�	" Manager"
\\�	"make the machine auto-boot on reset if Shift is "
\\�	"This  displays"
\\�	"show"
\\�	"ther"
\\�	"Drag a mode description file here to change the available modes."
\\�	"ing "
\\�	"int"
\\�	" mode."
\\�	"Type in the "
\\�	"Double-click ADJUST to "
\\�	"access "
\\�	"new "
\\�	"pattern"
\\�	"pixels"
\\�	"replac"
\\�	"root directory"
\\�	"scale factor"
\\�	"task"
\\�	"Use the full info display option to see current settings."
\\�	"ate"
\\�	"text"
\\�	"Drag "
\\�	"The "
\\�	"file being edited."
\\�	"allow the general public to read"
\\�	"drive"
\\�	"ope"
\\�	"resolution"
\\�	"centimetre"
\\�	"enter"
\\�	" file"
\\�	" to be "
\\�	" icon"
\\�	") to "
\\�	" and click  on OK"
\\�	"set the "
\\�	" or more occurrences of the next pattern element"
\\�	" into"
\\�	"size"
\\�	"time stamp"
\\�	" between the two matching paths in the selected group."
\\�	" contain"
\\�	" on the "
\\�	" of objects."
\\�	" that"
DIR$  {G�����H͈upd0-1�{G�����c��Upd28|G�����c�UUpd3�|G����kd�jUpd11�}F���1ܑ?-Upd10,~G����Z�Com0@G���7�Z�fCom10�G���'�\�;Com20�G������ncom30T�G���c�ͤcom40��G�����\�ICom100D�G���.�[��Com110�F����Ó?�Com120��F����Г?�Com130��F�����?Com140̈G���\�Com200؉G���D]�-com210�G�����\��com220��F���LU�?�Com230L�F���KX�?�Com240�F���]\�?�Com250ĒG���4b�͉Com260P�G����&]�iCom270��G���R-]��Com280@�G���K�H�Com3008�G���=�H�Com3104�G�����H��Com400�F������?.Com4104�G�����H�sCom420��G����$�ͮCom430X�G����&��com440h�G����X_�nCom450؜G����^_�lCom460D�F���o{�?CCom800��G���l
Γ
com900��G���*�H�gRep0�F���S�?�Rep10��F���ņ�?4Rep20�F������?6Rep30�G����H͠Rep100��G���e�a��Rep110��G����a�bRep200��G�����a�[Rep210X�G���Bb�6Rep220��G���AY���Rep400`�G���93�͐rep440�G���n�H�JRep450<�G�����b�GRep460��G����Γ"rep900��G���}\�NCom150��G����]�_Com290X�G���+�H�XCom320��G���A�ͨ3Com500X�G�����H͢com1000��G�����H�ERep290D�G����b�̓rep500ȷG���Q[���upd4-6��G�����H͆upd12<�G����d��Upd100<�G���}���Wcom30items��G������4com430itemsȽG���f��^com430flags(�G����<��Zcom500items��G���4N�� Rep400flagsDATA�NewsBase Update type 0 and 1
+24	number of articles in group
+28	last article in group
+32	Name of newsgroup created or deleted
DATA�NewsBase Update type 2
+24	Article number
+28	Article date
+32	Name of newsgroup
+32+n	From field
+32+m	Subject field
+32+o	Message-ID field
+32+p	Date field
DATAUNewsBase Update type 3
+24	Article number
+28	reserved
+32	Name of newsgroup
DATAjNewsBase Update type 11
+24	<Update type=>.types>
+28	reserved
+32	Transport name, which update applies to

This is broadcast by Newsbase when a new outgoing mail or news file is queued. This is to permit external queue control applications to re-examine the queue and update their displays.
#subpage types
Debatch types
Type	Meaning
#Line
0	mail
1	news
DATA-NewsBase Update type 10
no extra dataDATANewsBase_StartUp (0)
+24	minimum version of NewsBase supported * 100
+28	minimum revision of NewsBase supported

Broadcast by a client to indicate it requires support from newsbase. If no response received, the client may either complain, or attempt to start newsbase.DATAfNewsBase_ShutDown (10)
no extra data

Indicates that a client has finished a newsbase session.DATA;NewsBase_SetUser (20)
+24	<Encryption type=>.encryption>
+32	Username (control-terminated)
+32+n	Password (or null string)

Sets current username for the newsbase session.

Password field is currently ignored but will be used for network versions of newsbase. Encryption type indicates whether the password field is encrypted. Initially only type 0 (none) will be supported, but encryption will be added to avoid passing plaintext passwords over a network.
#Subpage encryption
SetUser encryption types
Type	Meaning
#Line
0	Un-encrypted string
1	MD5 string digest
DATAnNewsBase_SiteInfo (30)
+24	<item number=>Msg_NB_com30items>

Requests site information from Newsbase.
DATA�NewsBase_SetSiteInfo (40)
+24	<item number=>Msg_NB_Com30items>
+32	new value string

Sets a value in the NewsBase settings - {*}This is not implemented.{*}
DATAINewsBase_ListGroups (100)
+24	<list type=>.type>
+32	group name or pattern

A list of active groups matching the given pattern is returned. Most common use will be to return all active groups (pattern "*").
#Subpage type
ListGroup types
Type	List to return
0	database (those in !NewsDir)
1	newsfeed (wildcard is ignored)
DATA�NewsBase_NewGroups (110)
+24	date
+28	time

Returns all newly-created groups since date/time. Date and time follow NNTP convention of yymmdd and hhmmss, though in numeric rather than ascii form.
DATA�NewsBase_AddGroup (120)
+32	group name or pattern

Adds group(s) to the active list. This is not the same as 'subscribing' a group for an individual user (which should be handled solely by the client program) - it adds the group(s) to the news feed. May not be supported or appropriate for all transport types.

For ka9q, if more than one newsfeed is present (multiple xxxGroup files), the group(s) are added to the largest file (it is assumed that this is the primary server).
DATA�NewsBase_RemoveGroup (130)
+32	group name or pattern

The inverse of the AddGroup command. May not be supported or appropriate for all transport types. Works ok for ka9q.
DATANewsBase_ExpireGroup (140)
+24	expiry time in days (-1 = default)
+32	group name or pattern

Causes newsbase to perform an expiry run on the specified group(s). Normally this function is performed automatically by NewsBase, but a command interface is included for completeness.
DATANewsBase_ListArts (200)
+24	first article number (0=first)
+28	last article number (0=last)
+32	group name

Returns a list of article numbers with associated "From", "Subject", "Message-ID" and "Date" header fields. Intended for display of article catalogues.
DATA-NewsBase_ListArtsInfo (210)
+24	first article number (0=first)
+28	last article number (0=last)
+32	group name
+32+n	string of <flags=>.flags> indicating data required

Returns a list of article numbers with extra header information. Replies take the form of one <Newsbase_Reply 200=>Msg_NB_Rep200> message (From, Subject and Message-ID) and one or more <Newsbase_Reply 210=>Msg_NB_Rep210> message, containing the extra data, for each article.

More than one data item may be requested - eg, a flag string of "rdx" would return, for each article, first the normal Newsbase_Reply 200 message, followed by three Newsbase_Reply 210 messages; containing the References, Date and Xref: headers.

It should not normally be necessary to request the Date, From, Subject, or Message-ID headers, as this information is returned in Newsbase_Reply 200 anyway. However, they may be requested if the information is important (as the Newsbase_Reply 200 forms may be truncated due to the limited space available in a single wimp message).

For compatibility with older versions of Newsbase, if no flag string is given, the flag "r" (to return References) is assumed.
#Subpage flags
ListArtsInfo flags
Flag	Value returned
#Line
r 	References header
d 	Date header
f 	From header
s 	Subject header
m 	Message-ID header
x 	Xref: header
DATA�NewsBase_GetArticle (220)
+20	article number
+24	<flags=>.flags>
+32	group name
+32+n	Message-ID

This command will either return the filename of the full article, or request that the full article be fetched.
#Subpage flags
GetArticle flags
Bit	Meaning if set
#Line
0	Request Message-ID to be fetched, otherwise return a valid filename
	Note: The filename returned may not be valid across <Wimp_Poll>sDATA�NewsBase_LockArticle (230)
+24	first article number (0=first)
+28	last article number (0=last)
+32	group name

Locks one or more articles to prevent expiry.
DATA�NewsBase_UnLockArticle (240)
+24	first article number (0=first)
+28	last article number (0=last)
+32	group name

Unlocks one or more articles to allow expiry.
DATA�NewsBase_DeleteArticle (250)
+24	first article number (0=first)
+28	last article number (0=last)
+32	group name

Deletes one or more articles, if articles are not locked, and if deletion is enabled.
DATA�NewsBase_MoveArticle (260)
+24	first article number (0=first)
+28	last article number (0=last)
+32	group name
+32+n	destination folder name

Moves an article from one group to another. The command is only valid for email articles; news articles cannot be moved. If the destination folder does not exist, it is created (folders can only be created in the Email or Folders hierarchies).
DATAiNewsBase_CopyArticle (270)
+24	first article number (0=first)
+28	last article number (0=last)
+32	group name
+32+n	destination folder name

Copies an article from one group to another. The command can be applied to news or mail. If the destination folder does not exist, it is created (folders can only be created in the Email or Folders hierarchies).
DATA�NewsBase_CancelArticle (280)
+32	group name(s)
+32+n	message-ID string

Sends a cancel message for the given article ID.
DATA�NewsBase_PostArticle (300)
+24	flags
+28	reserved (must be 0)
+32	file name
+32+n	local file copy folder, - to prevent filing, or null for default

Posts an article. The file should contain an article complete with RFC-compliant headers.
DATA�NewsBase_MailArticle (310)
+24	flags
+28	reserved (must be 0)
+32	file name
+32+n	local file copy folder, - to prevent filing, or null for default

Sends a mail message. The file should contain a message complete with RFC-compliant headers.
DATA�NewsBase_ListUsers (400)
+24	<flags=>.flags>
+28	reserved (must be 0)
+32	pattern, or null for all

Returns a list of valid usernames, with their group numbers and home directories. The home directory is a directory specific to that user which can be used to store configuration information, eg record of subscribed groups or read articles.
#Subpage flags
ListUsers flags
Bit	Meaning if set
#Line
0	list all users (otherwise just those who aren't hidden)
DATA.NewsBase_AddUser (410)
+32	user name

DATAsNewsBase_DeleteUser (420)
+24	reserved (must be 0)
+28	reserved (must be 0)
+32	user name

Deletes a user.
DATA�NewsBase_ModifyUser (430)
+24	<item to modify=>Msg_NB_Com430items>
+28	<flags=>Msg_NB_Com430flags>
+32	user name
+32+n	new value of item

Modifies the user database.
DATANewsBase_GetUserInfo (440)
+24	<item to return=>Msg_NB_Com430items> or 0 for all information
+28	reserved (must 0)
+32	user name or pattern
+32+n	data string

Returns information about a user.

The data string is used to return the target filename via item 100.
DATAnNewsBase_ExamineForwarding (450)
This command is obsolete - use <Command 430=>Msg_NB_Com430> instead.
DATAlNewsBase_ExamineVacation (460)
This command is obsolete - use <Command 430=>Msg_NB_Com430> instead.
DATACNewsBase_ReEdit (800)
+24	file type (0=mail, 1=news)
+28	reference number
+32	filename to re-edit

This message should be broadcast by a queue control program, when the user indicates they wish to re-edit an already-queued file. 

The reference number is generated by the queue control program, and will be returned by any Newsbase_Reply message requiring further action (such as deleting the original queue entry). This is intended to aid use with multiple re-edit sessions.

Note that while a re-edit session is in progress, the message should be locked in some way to prevent it from being sent. For ka9q, a file could be created in the "lock" directory. Other methods may be needed for other transport types.

Not used at present - may be discarded, as more complicated than necessary (see, eg, !Qedit for simpler method).
DATA
NewsBase_ClientPresent (900)
no extra data

This is sent by a client in reply to a <NewsBase_Reply ClientPresent=>Msg_NB_Rep900> message - broadcast by newsbase prior to starting a newsreader.

This should be sent if you wish to prevent the client from loading.DATAgNewsBase_StartupReply (0)
+24	actual NewsBase version
+28	<flags=>.flags>

This is returned by NewsBase to indicate that it is present. NewsBase will also broadcast this message automatically on startup.
#Subpage flags
Startup reply
Bit	Meaning
#Line
0-7	patch level
8-15	pre-release number (100 for standard release, \< 100 for development versions)
DATA�NewsBase_Shutdown (10)
+32	descriptive string

NewsBase also broadcasts this message if it shuts down due to an error or user request (ie Quit from the iconbar menu).
DATA4NewsBase_SetUser (20)
+32	Current user name
DATA6NewsBase_SiteInfo (30)
+32	information string
DATA�NewsBase_GroupList (100)
For database :
#Indent 2
+24	lowest numbered article in group
+28	highest numbered article in group
+32	estimated number of articles in group
+36	news group name
+36+n	<extra information string=>.extra>

Returns in a stream of messages, one per article. End of list is signalled by a null string and low/high articles set to zero. Otherwise, a first article number of zero indicates that no articles are present in the group.
#Indent

For newsfeed :
#Indent 2
+24	reserved (must be 0)
+28	reserved (must be 0)
+32	reserved (must be 0)
+36	newsgroup name

Returns in a stream of messages, listing each of the newsgroups.
#Subpage extra
GroupList extra information
This is a space seperated list of information about the group. The following data is given :
Code	Meaning
#Line
Lx	x = 0, article deletion allowed
	x = 1, article deletion disallowed

Tx12	x12 = creation time in format CeYrMnDy24Mi
DATA�NewsBase_NewGroupList (110)
+24	date group became available
+28	time group became available
+32	news group name

Returns in a stream of messages, one per article. End of list is signalled by a null group name.
DATAbNewsBase_ArtList (200)
+24	article number
+28	article size in bytes, 0 if unknown, or -1 if only header present
+32	From: field
+32+n	Subject: field
+32+m	Message-ID: field (truncated to 70 characters)
+32+o	Date: field (truncated to 45 characters)

Returns in a stream of messages, one per article. End of list is signalled by article number 0.
DATA[NewsBase_ArtInfo (210)
+24	article number
+28	<data type=>.types>
+32	header data

Returns in a stream of messages, one per article. End of list is signalled by article number 0.
#Subpage types
ArtInfo types
Type	Header info returned
#Line
0	reference header
1	date header
2	from header
3	subject header
4	message-id header
5	x-ref header
DATA6NewsBase_GetArticle (220)
+24	article number
+28	article size, or -1 if article is only present in header form
+32	filename (control terminated)
+32+n	article flag string (control terminated)

Currently, the locked status is the only flag returned - either "L0" or "L1" to indicate unlocked or locked.
DATA�NewsBase_UserList (400)
+24	user's group number
+28	<flags=>Msg_NB_Rep400flags>
+32	username
+32+n	home directory

Returned in a stream of messages, one per user. End of list indicated by 0,0,"",""
DATA�NewsBase_GetUserInfo (440)
+24	<item type=>Msg_NB_Com430items>
+28	<flags=>Msg_NB_Com430flags>
+32	username
+32+n	information requested
DATAJNewsBase_ExamineForwarding (450)
This message will never be sent.
DATAGNewsBase_ExamineVacation (460)
This message will never be sent.DATA"NewsBase_ClientPresent (900)
no extra data

This Newsbase_Reply message is broadcast by newsbase before attempting to start a new client application. If a client is loaded and wishes to prevent another from being started, it should reply with <NewsBase_Command 900=>Msg_NB_Com900>.
DATANNewsBase_CreateFolder (150)
+32	folder name

Creates an empty folder.
DATA_NewsBase_GroupOverview (290)
+24	first article number (0=first) {/}(assumed 0){/}
+28	last article number (0=last) {/}(assumed 0){/}
+32	group name

Returns a filename for the group overview information. This file contains article header information in a standard format, and can provide a faster way of obtaining article information than the wimp-message lists from commands 200 & 210. The filename returned can be used to directly load or copy the data, but should not be stored across Wimp_Polls, as it may simply be a scrap file.

Several polls may occur between sending this message and receiving the reply (in the case that a new overview file has to be generated).

If first/last article numbers are supplied, then a subset overview file is created containing only those article numbers, and the filename returned is temporary (not yet supported).
DATAXNewsBase_SetReturnPath (320)
+32	envelope 'From' address, or null to clear

The Envelope "From" address may be provided should the Newsbase-supplied one be unsuitable (eg, for mailing list software). This command need only be sent once to set the value for a client, and it will be remembered for that session until altered or cleared.
DATA�NewsBase_ListTransports (500)
+24	<item to return=>Msg_NB_Com500items>
+28	reserved (must be 0)
+32	transport or pattern

Returns information about transports.
DATA�NewsBase_ScriptCommand (1000)
+24	reserved (must be 0)
+28	reserved (must be 0)
+32	command string

This is sent by clients to execute a newsbase script.
DATAENewsBase_GroupOverview (290)
+24	<flags=>.flags>
+32	filename

The overview file returned should not be held open for too long, so that updates are allowed, and preferably not over <Wimp_Poll>s.
#Subpage flags
GetOverview flags
Bit	Meaning if set
#Line
0	file returned is a scrap file and should be deleted after use
DATA�NewsBase_ListTransports (500)
+24	<item type=>Msg_NB_Com500items>
+28	transport flags
+32	transport name
+32+n	item string
DATA�NewsBase Update type 4, 5 and 6
+24	user's group number
+28	<user flags=>Msg_NB_Rep400flags>
+32	user name
+32+n	home directory
+32+m	real name

Message 6 (User Modified) is sent whenever a user {/}may{/} have been modified.
DATA�NewsBase Update type 12
+24	reserved
+28	reserved
+32	newsgroup name

This is broadcast when expiry has completed on a group.
DATA�NewsBase Update type 100
+24	<message type=>.types>
+28	reserved
+32	message text

This is broadcast to notify clients of major miscellaneous events.
#Subpage types
Message types
Bit	Meaning if set
#Line
0	Message is important (might sound bell)
DATAWNewsBase_SiteInfo items
Item	Meaning
#Line
0	fully-qualified hostname
1	organization
2 	unqualified hostname
3 	domain name
4 	timezone
5 	remote hostname
6 	mail hostname (can be different from 0)
20 	current transport name
21 	current transport type (either "batch" or "direct")
100 	username control status
101 	default expiry time
DATA4NewsBase User fields
Field	Contents
#Line
1	password
2	user number {/}(unused at present){/}
3	group number
4	real name
5	home directory
6	forwarding address
7	new mail script command (end of batch)
8	new mail script command (per message)
9	reply to address
10	outgoing mail folder ('Email.\<user\>.outgoing.mail' if unset)
11	outgoing news folder ('Email.\<user\>.outgoing.news' if unset)
12	comment field
99	filename for 'vacation' message, or null to clear
100	store general purpose resource file. New value has format '\<target file\> \<source file\>'
DATA^Users flags
Bit	Meaning if set
#Line
0	Password is MD5 digest (otherwise unencrypted)
DATAZTransport items
Item	Meaning
#Line
0	Outgoing spool directories (comma seperated)
DATA User flags
Bit	Meaning if set
#Line
0	password is required
16	keep mail is active
17	keep news is active
18	can post mail
19	username is an alias
20	hidded
21	disabled
22	can send mail
23	can read mail
24	can delete mail
25	can read news
26	can delete news
27	is an administrator
DATA*Message_WindowInfo  (&400CC)
#Parent MSG_
 + 20	window handle
 + 24	reserved (0)
 + 28	sprite name (minus the ic_ bit)
 + 36	title to use (as short as possible)
 
This message is sent by the iconiser when one of your windows is iconised, to find out which sprite and name to give the icon.
DATA%Message_WillPrint  (&80141)
#Parent MSG_
This message is sent to !Printers on receipt of a <PrintFile=>Msg_80140> message to indicate that printing will occur directly to Printer:

Use of this message is depreciated, and <PrintTypeOdd=>Msg_80145> protocol should be used in preference.DATA�Message_PrintSave  (&80142)
#Parent MSG_
+ 20	unused
+ 24	unused
+ 28	unused
+ 32	unused
+ 36	estimated size
+ 40	<filetype=>Filetypes:!Root> of data
+ 44	proposed leafname, zero terminated

This message is sent to !Printers to initiate a print session. This should be sent recorded delivery (code 18), and if it bounces then you should complain that no printer driver is present.

Printers will respond with one of :
 �	<PrintError=>Msg_80144> if the printer is busy.
 �	<PrintFile=>Msg_80140> (for compatability with RISC OS 2 applications).
 �	<PrintTypeOdd=>Msg_80145> if it doesn't know how to print the file.
 �	<DataSaveAck=>Msg_2> if the file should be saved for queueing (later, a PrintTypeOdd message will be broadcast).
DATA�Message_PrintInit  (&80143)
#Parent MSG_
This message is sent by !Printers when it has loaded. All other printer drivers should quit quietly on receiving this message.

The PRM's do not specify what should happen if the active printer driver is 'actively' printing. I would recommend that such drivers should complain and send <PreQuit=>Msg_8> followed by <Quit=>Msg_0> to the originator of such messages.DATA�Message_PrintError  (&80144)
#Parent MSG_
+ 20	<error number=>.errors>
+ 24	error message

This message is sent by !Printers if an error occurs during printing. If the length of the block is 20 then you should assume that the printer is busy and give a message to that effect - this is only applicable to RISC OS 2.
#subpage errors
PrintError errors
Error	Meaning
#Line
1	Can only print from applications when a printer has been selected.
DATA^Message_PrintTypeOdd  (&80145)
#Parent MSG_
+ 40	<filetype=>Filetypes:!Root> of data
+ 44	filename

This message is sent by !Printers when it doesn't know how to print the file. The filetype and filename cannot be relied on if we have just come from a <PrintSave=>Msg_80142> message, though why the PRM's state this, I'm not sure.

If an application knows how to print that filetype (doh, how can you do this if you can't rely on it ?) then it should respond with <PrintTypeKnown=>Msg_80146> and either :
 �	Print the file to Printer:
 �	Output the file (does this mean print again ?) to Printer$Temp /before/ responding with PrintTypeKnown.

If it does not know the type, then it should ignore the message and await a <DataSaveAck=>Msg_2> (which may never arrive if another application knows how to print the file) to queue the file for later printing.
DATA�Message_PrintTypeKnown  (&80146)
#Parent MSG_
This message is sent to !Printers to indicate that an application has printed, or is printing (is that right ?) a file.DATA�Message_SetPrinter  (&80147)
#Parent MSG_
This message is sent by !Printers to indicate that the printer settngs or selection has changed.DATA�Message_PSPrinterQuery  (&8014C)
#Parent MSG_
+ 20	buffer address, or zero
+ 24	buffer size

This message is sent by !FontPrint to !Printers to ask for information. If the buffer size is not zero then the data placed in the buffer should be :
�	Current printer name
�	Current printer type
�	Pathname to printer font file

!Printers should always respond by placing the size of the buffer in the block and sending <PSPrinterAck=>Msg_8014D>.
DATAfMessage_PSPrinterAck  (&8014D)
#Parent MSG_
+ 24	buffer size

This message is sent by !Printers to !FontPrint to notify that it has either filled in the block required by <PSPrinterQuery=>Msg_8014c>, or to tell it the size of the block required.

If !FontPrint does not receive this message then it should report an error as no printer is installed.
DATA�Message_PSPrinterModified  (&8014E)
#Parent MSG_
This message is sent by !FontPrint when the font list file has changed. The printer driver should re-read the file on receipt.DATA�Message_PSPrinterDefault  (&8014F)
#Parent MSG_
This message is sent by !FontPrint when the font list file should be reset to its default state. The printer driver should respond with <PSPrinterDefaulted=>Msg_80150>.DATA�Message_PSPrinterDefaulted  (&80150)
#Parent MSG_
This message is sent by !Printers when the font list file has been reset. This is usually in response to <PSPrinterDefault=>Msg_8014F>.DATA�Message_PSPrinterNotPS  (&80151)
#Parent MSG_
This message is sent by !Printers if it receives <PSPrinterQuery=>Msg_8014C> and the currently selected printer is not postscript.DATA�Message_ResetPrinter  (&80152)
#Parent MSG_
This message is sent to !Printers to ensure that the printer settings are correct for the currently selected printer.DATAqMessage_PSIsFontRunning  (&80153)
#Parent MSG_
If !FontPrint is running it will acknowledge this message.DATA
External Edit clients
The client application is defined as that which initiates the editing session, ie that which asks the editor for a new session.

The client application decides (usually at the request of the user) that some data needs to be edited. Unable to supply this function itself, it broadcasts to all other applications requesting an External Editing session (<EditRq=>Msg_45d80>).

If no reply is recieved (the message bounces), then the client may take any appropriate action (for example, run an editor (Using the <Alias variable=>Msg_ExtEditVariable>) and then re-broadcast the request), but if the edit is not possible, the client will inform the user with an error message indicating that the edit is not possible.

If a reply is received (<EditAck=>Msg_45d81>), then a window will have been opened, and the user may now edit the (blank) data in this window. The client now has the following options:

�	By starting a data transfer to the editor (<EditDataSave=>Msg_45d84>), the client can insert some data at the �current  position� in the edited data; this can be done at any time, but is mainly intended to supply an initial chunk of data to be edited. For example, a compiler might make Edit display a source code file if an error has been found during compilation.

�	By sending an appropriate message (<EditCursor=>Msg_45d85>), the client can set a selection or cursor position in the edited data. For example, the compiler might highlight the line of code containing the error.

�	Another message (<EditReturn=>Msg_45d82>) may be sent by the client at any time to request that the data be returned. For example, the compiler could include a button/menu option somewhere which says 'recompile', which will automatically retrieve the code being edited and recompile it.
DATA�External Edit editors
The editor application is defined as that which accepts editing session messages, ie that within which the editing of the object takes place.

Upon receipt of an external edit request broadcast (<EditRq=>Msg_45d80>), the editor checks the <data type=>Msg_ExtEditDatatypes>, and if it is able to edit the data, it opens a suitable window (on a 'blank' datafile) and replies to the  message (with <EditAck=>Msg_45d81>). 

It will allow the user to edit the data (unless the request was for read-only data), and can also handle some extra functions:

� If a data transfer is started by the client (<EditDataSave=>Msg_45d84>), it will insert the new data  into the ExtEdit data, at the current 'cursor' position (usually the end of the file).

� If the client requests the data back (<EditReturn=>Msg_45d82>), or if the user chooses the 'save' menu option, a reverse data transfer will be initiated back to the client.

� Closing the ExtEdit window should abort the transfer /without/ returning the data to the client.

� If the client request a new selection to be highlighted (<EditCursor=>Msg_45d85>), then the editor should move to the location specified and display the higlighting as required.DATA�Job Handle
The Job Handle consists of two 16 bit values :
  Bit 0-15	: "Client" handle
  Bit 16-31	: "Editor" handle

Both values should be non-zero.DATAFlag Word
Bit	Meaning when Set
#Line
 0	Continuous editing. Don't close after save.
 1	Selection. EditReturn : Send selection only.
 2	Read-Only.
 3	Immediate Playback. "Play sample & quit"
 4	Adjust selection.
 
Bits 5 to 31 are reserved and should be set to 0.DATA Unit meanings
#Wrap Off
Filetype			Unit represents
#Line
<Text=>Filetypes:FFF>		Character
<Command=>Filetypes:FFE>	Character
<TaskObey=>Filetypes:FD7>	Character
<TaskExec=>Filetypes:FD6>	Character
<Obey=>Filetypes:FEB>		Character
<BasicTxt=>Filetypes:FD1>	Character
<Data=>Filetypes:FFD>		Byte offset
<BASIC=>Filetypes:FFB>		Byte offset
<Sprite=>Filetypes:FF9>		Sprite number
<Palette=>Filetypes:FED>	Colour number as index into standard file format
<DrawFile=>Filetypes:AFF>	Draw object
<ARMovie=>Filetypes:AE7>	Animation frame number
DATAcData type word
The Data type word consists of two 16 bit values :
  Bit 0-15	: Standard Acorn <Filetype=>Filetypes:!Root>
  Bit 16-31	: "<Subtype=>Msg_ExtEditSubtypes>"

Subtype 0 means that the filetype says it all, while subtypes &0001 to &04FF are reserved for the user. Applications for general distribution should request a proper allocation.DATA�External Edit subtypes
The official allocation of subtypes has yet to be decided, but as only one subtype is know to the author, this is not really a problem.

Datatype	File contents		Owner
#Line
012C0FFF	DJF tune (DJF-JRF)	Justin FletcherDATAExternal Edit protocol moderator
Currently, Jason Williams is working for Computer Concepts and has implied that he no longer wishes to support the External Edit protocol. Thus, the protocol has not advanced since much since its creation 4 years ago.
DATA�Exernal Edit Variable
External editors use a variable similar to the Alias$@RunType_xxx variable which is currently in use for unknown file run requests.

A client wishing to run an editor can then execute the command held in the most appropriate  Alias$@EditType_??? system variable, and then start broadcasting EditRq messages again.

If no Alias$@EditType_??? variable is set, or if it fails for any reason to successfully launch an editor (your retried EditRqs will fail), then you should give up and report the problem to the user.

It is important that this variable is initialised in the !Boot file of an application, for example :
#fCode
   Set Alias$@RunType_FFF Run \<Obey$Dir>.!Run %%*0
   Set Alias$@EditType_FFF Run \<Obey$Dir>.!Run
#f
DATA8Message_IRCSendData  (&DAB00)
#Parent MSG_
+ 20	Pointer to command to send (zero terminated)

This message is should be broadcast to send a command direct to IRClient to be executed as if it were typed in the input box.

Note: This may not be an IRC window and care should be taken when using this call.
DATA)Message_IRCSendRawData  (&DAB01)
#Parent Msg_
+ 20	Pointer to data to send (zero terminated)

This message should be broadcast to send raw data direct to the server. This will probably bypass /all/ of the internal processing which the scripts apply to its own output, but may be buffered.
DATAGMessage_DDEToolInfo  (&81400)
#Parent Msg_
+ 20	handle as passed to setup program (parameter 3)
+ 24-35	program name (parameter 0), zero terminated
+ 36	command line options to use, zero terminated

This message is sent by DDE applications when their options as used in the command line when launched has been changed.
DATA�NewsBase_Command (&83580)
+20	<Command code=>.codes> + Reference number
	rest of block as defined by code

The command code is one 16-bit fields, and the reference number is the top 16 bits (to be supplied by the client application). The reference will be preserved by NewsBase in replies. This permits overlapping command-reply sequences issued by a client to be identified and followed.
#Subpage codes
NewsBase command codes
#Wrap Off
General Purpose Commands
#Indent 2
0	<NewsBase_StartUp=>Msg_NB_Com0>
10	<NewsBase_ShutDown=>Msg_NB_Com10>
20	<NewsBase_SetUser=>Msg_NB_Com20>
30	<NewsBase_SiteInfo=>Msg_NB_Com30>
40	<NewsBase_SetSiteInfo=>Msg_NB_Com40>
#Indent

Newsgroup oriented commands
#Indent 2
100	<NewsBase_ListGroups=>Msg_NB_Com100>
110	<NewsBase_NewGroups=>Msg_NB_Com110>
120	<NewsBase_AddGroup=>Msg_NB_Com120>
130	<NewsBase_RemoveGroup=>Msg_NB_Com130>
140	<NewsBase_ExpireGroup=>Msg_NB_Com140>
150	<NewsBase_CreateFolder=>Msg_NB_Com150>
#Indent

Article oriented commands
#Indent 2
200	<NewsBase_ListArts=>Msg_NB_Com200>
210	<NewsBase_ListArtsInfo=>Msg_NB_Com210>
220	<NewsBase_GetArticle=>Msg_NB_Com220>
230	<NewsBase_LockArticle=>Msg_NB_Com230>
240	<NewsBase_UnLockArticle=>Msg_NB_Com240>
250	<NewsBase_DeleteArticle=>Msg_NB_Com250>
260	<NewsBase_MoveArticle=>Msg_NB_Com260>
270	<NewsBase_CopyArticle=>Msg_NB_Com270>
280	<NewsBase_CancelArticle=>Msg_NB_Com280>
290	<NewsBase_GroupOverview=>Msg_NB_Com290>
#Indent

Posting/mailing commands
#Indent 2
300	<NewsBase_PostArticle=>Msg_NB_Com300>
310	<NewsBase_MailArticle=>Msg_NB_Com310>
320	<NewsBase_SetReturnPath=>Msg_NB_Com320>
#Indent

User oriented commands
#Indent 2
400	<NewsBase_ListUsers=>Msg_NB_Com400>
410	<NewsBase_AddUser=>Msg_NB_Com410>
420	<NewsBase_DeleteUser=>Msg_NB_Com420>
430	<NewsBase_ModifyUser=>Msg_NB_Com430>
440	<NewsBase_GetUserInfo=>Msg_NB_Com440>
450	<NewsBase_ExamineForwarding=>Msg_NB_Com450>
460	<NewsBase_ExamineVacation=>Msg_NB_Com460>
#Indent

Transport oriented commands
#Indent 2
500	<NewsBase_ListTransports=>Msg_NB_Com500>
#Indent

Queue control commands
#Indent 2
800	<NewsBase_ReEdit=>Msg_NB_Com800>
#Indent

Miscellaneous commands
#Indent 2
900	<NewsBase_ClientPresent=>Msg_NB_Com900>
1000	<NewsBase_ScriptCommand=>Msg_NB_Com1000>
#Indent
DATAYNewsBase_Update (&83582)
+20	<type of update=>.types>
	rest of block as defined by code

This is broadcast by NewsBase whenever one of the sections of the database is altered.
#subpage types
Newsbase update types
Type	Meaning
#Line
0	<Group created=>Msg_NB_Upd0-1>
1	<Group deleted=>Msg_NB_Upd0-1>
2	<Article created=>Msg_NB_Upd2>
3	<Article deleted=>Msg_NB_Upd3>
4	<User added=>Msg_NB_Upd4-6>
5	<User deleted=>Msg_NB_Upd4-6>
6	<User modified=>Msg_NB_Upd4-6>
10	<Debatch finished=>Msg_NB_Upd10>
11	<Queues updated=>Msg_NB_Upd11>
12	<Expiry finished=>Msg_NB_Upd12>
100	<Message=>Msg_NB_Upd100>
DATA~	NewsBase_Reply (&83581)
+20	<Command response code=>.codes> + Reference number + <status=>.status>
	rest of block as defined by code

NewsBase replies to <NewsBase_Command=>Msg_83580> with this message, returning the same groups, but with the least significant digit of the response code indicating the status.
#Subpage codes
NewsBase command response codes
General Purpose Commands
#Indent 2
0	<NewsBase_StartUpReply=>Msg_NB_Rep0>
10	<NewsBase_ShutDown=>Msg_NB_Rep10>
20	<NewsBase_SetUser=>Msg_NB_Rep20>
30	<NewsBase_SiteInfo=>Msg_NB_Rep30>
40	NewsBase_SetSiteInfo (success/failure only)
#Indent

Newsgroup oriented commands
#Indent 2
100	<NewsBase_GroupList=>Msg_NB_Rep100>
110	<NewsBase_NewGroupList=>Msg_NB_Rep110>
120	NewsBase_AddGroupOk (success/failure only)
130	NewsBase_RemoveGroupOk (success/failure only)
140	NewsBase_ExpireGroupOk (success/failure only)
#Indent

Article oriented commands
#Indent 2
200	<NewsBase_ArtList=>Msg_NB_Rep200>
210	<NewsBase_ArtInfo=>Msg_NB_Rep210>
220	<NewsBase_GetArticle=>Msg_NB_Rep220>
230	NewsBase_LockArticleOk (success/failure only)
240	NewsBase_UnLockArticleOk (success/failure only)
250	NewsBase_DeleteArticleOk (success/failure only)
260	NewsBase_MoveArticleOk (success/failure only)
270	NewsBase_CopyArticleOk (success/failure only)
280	NewsBase_CancelArticle (undocumented ?)
290	<NewsBase_GroupOverview=>Msg_NB_Rep290>
#Indent

Posting/mailing commands
#Indent 2
300	NewsBase_ArticlePosted (success/failure only)
310	NewsBase_MessageSent (success/failure only)
#Indent

User oriented commands
#Indent 2
400	<NewsBase_UserList=>Msg_NB_Rep400>
410	NewsBase_AddUserOk (success/failure only)
420	NewsBase_DeleteUserOk (success/failure only)
430	NewsBase_ModifyUserOk (success/failure only)
440	<NewsBase_GetUserInfo=>Msg_NB_Rep440>
450	<NewsBase_ExamineForwarding=>Msg_NB_Rep450>
460	<NewsBase_ExamineVacation=>Msg_NB_Rep460>
#Indent

Transport commands
#Indent 2
500	<NewsBase_ListTransports=>Msg_NB_Rep500>
#Indent

Queue control commands
#Indent 2
800	NewsBase_QueueEdit
#Indent

Miscellaneous commands
#Indent 2
900	<NewsBase_ClientPresent=>Msg_NB_Rep900>
#Indent
#Subpage status
NewsBase_Reply status
Status	Meaning
#Line
0	Command executed (data as described)
1	Command ok, but cannot be performed for some reason
2	Command ok, but cannot be performed just now (try later)
9	Bad command

In cases 1, 2 and 9 block+32 contains a descriptive message detailing the error.
DATAcUser messages
#Parent !Root
Misc :
#Indent 4
#Table Columns 3
<0 Quit=>Msg_0>
<8 PreQuit=>Msg_8>
<9 PaletteChange=>Msg_9>
<A SaveDesktop=>Msg_A>
<B DeviceClaim=>Msg_B>
<C DeviceInUse=>Msg_C>
<E Shutdown=>Msg_E>
<400 FilerOpenDir=>Msg_400>
<401 FilerCloseDir=>Msg_401>
<402 FilerOpenDirAt=>Msg_402>
<403 FilerSelectionDirectory=>Msg_403>
<404 FilerAddSelection=>Msg_404>
<405 FilerAction=>Msg_405>
<406 FilerControlAction=>Msg_406>
<407 FilerSelection=>Msg_407>
<500 AlarmSet=>Msg_500>
<501 AlarmGoneOff=>Msg_501>
<502 HelpRequest=>Msg_502>
<503 HelpReply=>Msg_503>
<40040 Notify=>Msg_40040>
<400C0 MenuWarning=>Msg_400C0>
<400C1 ModeChange=>Msg_400C1>
<400C2 TaskInitialise=>Msg_400C2>
<400C3 TaskCloseDown=>Msg_400C3>
<400C4 SlotSize=>Msg_400C4>
<400C5 SetSlot=>Msg_400C5>
<400C6 TaskNameRq=>Msg_400C6>
<400C7 TaskNameIs=>Msg_400C7>
<400C8 TaskStarted=>Msg_400C8>
<400C9 MenusDeleted=>Msg_400C9>
<400CA Iconize=>Msg_400CA>
<400CB WindowClosed=>Msg_400CB>
<400CC WindowInfo=>Msg_400CC>
400CD Swap
400CE ToolsChanged
400CF FontChanged
#EndTable

#Indent
The block transfer model (Clipboard, Drag'n drop) :
#Indent 4
#Table Columns 2
<F ClaimEntity=>Msg_F>
<10 DataRequest=>Msg_10>
<11 Dragging=>Msg_11>
<12 DragClaim=>Msg_12>
#EndTable
# Gerph> 13 cannot be documented because it's not out of Acorn yet !

#Indent
Data Transfer Protocol :
#Indent 4
#Table Columns 3
<1 DataSave=>Msg_1>
<2 DataSaveAck=>Msg_2>
<3 DataLoad=>Msg_3>
<4 DataLoadAck=>Msg_4>
<5 DataOpen=>Msg_5>
<6 RAMFetch=>Msg_6>
<7 RAMTransmit=>Msg_7>
<D DataSaved=>Msg_D>
#EndTable

#indent
<PlugIn Protocol=>Msg_Plugin_> :
#Indent 4
#Table Columns 3
<4D540 PlugIn_Open=>Msg_Plugin_4D540>
<4D541 PlugIn_Opening=>Msg_Plugin_4D541>
<4D542 PlugIn_Close=>Msg_Plugin_4D542>
<4D543 PlugIn_Closed=>Msg_Plugin_4D543>
<4D544 PlugIn_Reshape=>Msg_Plugin_4D544>
<4D545 PlugIn_Reshape_Request=>Msg_Plugin_4D545>
<4D546 PlugIn_Focus=>Msg_Plugin_4D546>
<4D547 PlugIn_Unlock=>Msg_Plugin_4D547>
<4D548 PlugIn_StreamNew=>Msg_Plugin_4D548>
<4D549 PlugIn_StreamDestroy=>Msg_Plugin_4D549>
<4D54A PlugIn_StreamWrite=>Msg_Plugin_4D54A>
<4D54B PlugIn_StreamWritten=>Msg_Plugin_4D54B>
<4D54C PlugIn_StreamAsFile=>Msg_Plugin_4D54C>
<4D54D PlugIn_URLAccess=>Msg_Plugin_4D54D>
<4D54E PlugIn_Notify=>Msg_Plugin_4D54E>
<4D54F PlugIn_Status=>Msg_Plugin_4D54F>
<4D550 PlugIn_Busy=>Msg_Plugin_4D550>
<4D551 PlugIn_Action=>Msg_Plugin_4D551>
<4D552 PlugIn_Abort=>Msg_Plugin_4D552>
#EndTable

#Indent
Throwback Protocol :
#Indent 4
#Table 4 24
<42580 ThrowbackStart=>Msg_42580>
<42581 ProcessingFile=>Msg_42581>
<42582 ErrorsIn=>Msg_42582>
<42583 ErrorDetails=>Msg_42583>
<42584 ThrowbackEnd=>Msg_42584>
<42585 InfoForFile=>Msg_42585>
<42586 InfoDetails=>Msg_42586>
#EndTable

#Indent
<External Edit=>Msg_ExtEdit> Protocol :
#Indent 4
#Table Columns 3
<45D80 EditRq=>Msg_45D80>
<45D81 EditAck=>Msg_45D81>
<45D82 EditReturn=>Msg_45D82>
<45D83 EditAbort=>Msg_45D83>
<45D84 EditDataSave=>Msg_45D84>
<45D85 EditCursor=>Msg_45D85>
#EndTable

#Indent
Taskwindow Protocol :
#Indent 4
#Table Columns 3
<808C0 TW_Input=>Msg_808c0>
<808C1 TW_Output=>Msg_808c1>
<808C2 TW_Ego=>Msg_808c2>
<808C3 TW_Morio=>Msg_808c3>
<808C4 TW_Morite=>Msg_808c4>
<808C5 TW_NewTask=>Msg_808c5>
<808C6 TW_Suspend=>Msg_808c6>
<808C7 TW_Resume=>Msg_808c7>
#EndTable

#Indent
Print Protocol :
#Indent 4
#Table Columns 3
<80140 PrintFile=>Msg_80140>
<80141 WillPrint=>Msg_80141>
<80142 PrintSave=>Msg_80142>
<80143 PrintInit=>Msg_80143>
<80144 PrintError=>Msg_80144>
<80145 PrintTypeOdd=>Msg_80145>
<80146 PrintTypeKnown=>Msg_80146>
<80147 SetPrinter=>Msg_80147>
<8014C PSPrinterQuery=>Msg_8014C>
<8014D PSPrinterAck=>Msg_8014D>
<8014E PSPrinterModified=>Msg_8014E>
<8014F PSPrinterDefaults=>Msg_8014F>
<80150 PSPrinterDefaulted=>Msg_80150>
<80151 PSPrinterNotPS=>Msg_80151>
<80152 ResetPrinter=>Msg_80152>
<80153 PSIsFontPrintRunning=>Msg_80153>
#EndTable

#Indent
OLE Protocol :
#Indent 4
#Table Columns 2
<80E1E OLE_FileChanged=>Msg_80E1E>
<80E21 OLE_OpenSession=>Msg_80E21>
<80E22 OLE_OpenSessionAck=>Msg_80E22>
<80E23 OLE_CloseSession=>Msg_80E23>
#EndTable

#Indent
DDE Make Protocol :
#Indent 4
#Table Columns 2
<81400 DDE_ToolInfo=>Msg_81400>
#EndTable

#Indent
URI Protocol :
#Indent 4
#Table Columns 2
<4E380 URI_MStarted=>InetSWIs:Msg_4E380>
<4E381 URI_MDying=>InetSWIs:Msg_4E381>
<4E382 URI_MRequest=>InetSWIs:Msg_4E382>
<4E383 URI_MResult=>InetSWIs:Msg_4E383>
#EndTable

#Indent
<NewsBase mail=>Msg_NewsBase> protocol :
#Indent 4
#Table Columns 2
<83580 NewsBase_Command=>Msg_83580>
<83581 NewsBase_Reply=>Msg_83581>
<83582 NewsBase_Update=>Msg_83582>
#EndTable

#Indent
IRClient protocol :
#Indent 4
#Table Columns 2
<DAB00 IRC_SendData=>Msg_DAB00>
<DAB01 IRC_SendRawData=>Msg_DAB01>
#EndTable
DATA�Message_DeviceClaim  (11)
#Parent MSG_
20	<major device number=>devices>
24	<minor device number=>devices>
28	information string (zero-terminated)

This message is broadcast by a task wishing to claim exclusive use of a system device.
DATA�Message_DeviceInUse  (12)
#Parent MSG_
+ 20	<major device number=>Devices>
+ 24	<minor device number=>Devices>
+ 28	information string (zero-terminated)

This message is sent in response to a <Message_DeviceClaim=>Msg_B>, if the receiver does not want the claimant to gain exclusive use of a device (i.e. it's already using it).

The information string should be used to give information as to why the claim has failed, e.g. 'Printer is active'.
DATA�Message_ClaimEntity  (&F)
#Parent MSG_
20	<flags=>.flags>

This message should be broadcast to all tasks when your application claims the caret/selection or clipboard.

Part of the {/}RISC OS Selection Model and Clipboard{/} protocol.
#Subpage flags
Message_ClaimEntity flags
Bit	Meaning if set
#Line
0 and 1	caret or selection being claimed
2	clipboard being claimed

All other bits are reserved and must be set to zero.
DATAMessage_TaskStarted  (&400C8)
This message is sent by the Filer once it has started up all of the desktop filers so that the Task Manager can 'renumber' it.  This is done so that during the SaveDesktop sequence the Filer's own commands can be performed after any network logons.
DIR$��TH����q�4D540"H���+q4D541&H����-q4D542'H���5q94D543P)H����\�4D544�*H�����\�4D545�+H���U�\�4D546�-H���Цq4D547�.H���|qp�4d548�1H���^�pk4d549 4H�����p�4d54a�6H����pH4d54b9H���7�p14d54cL;H�����qn4D54D�>H�����q�4D54E\@H���5�qt4D54F�AH�����q 4D550�DH���ܘq�4D551�GH����qB4D552�IH���1�p�3formats�RH�����p�3!root�WH����-^T3string_valueDATA�Message_PlugIn_Open  (&4D540)
R1+16	Message_PlugIn_Open (&4D540)

Common fields:
R1+20	Flag bits:
	  0:	Set; open the file as a helper
	 	Clear; open the file as a plugin
	  1-31:	reserved (must be zero)
R1+28	Browser instance handle (provided by the browser)
R1+32	Parent window handle
R1+36	Left	{/}(bounding box{/}
R1+40	Bottom	{/} in parent's{/}
R1+44	Right	{/} work area{/}
R1+48	Top	{/} co-ordinates){/}
R1+52	<File type=>Filetypes:!Root>
R1+56	Filename (<string_value=>msg_plugin_string_value>)

Sent by the browser to create a plugin instance.

The file specified at R1+56 contains a speries of parameters in the form of name-value pairs.  This data is the list of attributes and parameters from the APPLET, OBJECT or EMBED tag - see their respective definitions.  This data is used by the plugin to understand what is being requested of it - see <here=>msg_plugin_formats> for details.

If bit 0 of the flags word is set then this is a request to open the file as a helper appliation.  i.e. external to the parent application.  In this case the bounding box (offset bytes 35 to 51) are invalid.  The parent window handle may be valid or 0 depending on how the file is launched.
DATAMessage_PlugIn_Opening  (&4D541)
R1+12	my_ref field from Message_PlugIn_Open
R1+16	Message_PlugIn_Opening (&4D541)

Common fields:
R1+20	Flag bits
	  0:	Set; plugin can accept input focus
	 	Clear; plugin cannot use input focus
	  1:	Set; plugin wants code resources fetched
	 	Clear; plugin will fetch code resources itself
	  2:	Set; plugin wants data resources fetched
	 	Clear; plugin will fetch data resources itself
	  3:	Set; plugin will delete the parameter file itself
	 	Clear; parent should delete paremeter file now
	  4:	Set; plugin has more work to do, keep showing busy indicator
	 	Clear; plugin is loaded
	  5:	Set; plugin understands <PlugIn_Action=>Msg_PlugIn_4D551> message beyond the /stop/ reason code
	 	Clear; plugin understands at most /stop/
	Bit 6:	Set; plugin task has opened a helper window
	 	Clear; plugin has embedded itself in the parent window
	Bits 7-31:	reserved (must be zero)
R1+24	PlugIn instance handle (invented by the PlugIn)
R1+28	Browser instance handle (copied from Message_PlugIn_Open)
DATAMessage_PlugIn_Close  (&4D542)
R1+16	Message_PlugIn_Close (&4D542)

Common fields:
R1+20	Flag bits
	  0:	Set; Browser would also like PlugIn to exit
	  1-31:	reserved (must be zero)
R1+24	PlugIn instance handle to close
R1+28	Browser instance handleDATA9Message_PlugIn_Closed  (&4D543)
R1+12	my_ref field from Message_PlugIn_Close (if applicable)
R1+16	Message_PlugIn_Closed (&4D543)

Common fields
R1+20	Flags:
	  0:	Set; PlugIn will exit after this message
	  1:	Set; this message is *not* in reply to Message_PlugIn_Close
	  2:	Set; there is an error block at R1+32
	  3-31:	reserved (must be zero)
R1+24	PlugIn instance handle of the closed instance
R1+28	Browser instance handle of the closed instance

If flags bit 2 is set:
R1+32	Error number
R1+36	Error message to be displayed by browser (zero-terminated)
DATA�Message_PlugIn_Reshape  (&4D544)
R1+12	my_ref field from Message_PlugIn_Reshape_Request (if applicable)
R1+16	Message_PlugIn_Reshape (&4D544)
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle
R1+32	Parent window handle
R1+36	Left	{/}(bounding box{/}
R1+40	Bottom	{/} in parent's{/}
R1+44	Right	{/} work area{/}
R1+48	Top	{/} co-ordinates){/}DATA�Message_PlugIn_Reshape_Request  (&4D545)
R1+16	Message_PlugIn_Reshape_Request (&4D545)
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle
R1+32	Width	(in OS units)
R1+36	HeightDATA�Message_PlugIn_Focus  (&4D546)
R1+16	Message_PlugIn_Focus (&4D546)
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle

This message is used to transfer the input focus between a plugin and its parent.  It can be sent in either direction.  If the recipient cannot or does not wish to accept the focus then it just ignores the messsage.  Otherwise it should acknowledge the message with message type 19 to prevent it being bounced back to the originator.DATAMessage_PlugIn_Unlock  (&4D547)
R1+16	Message_PlugIn_Unlock (&4D547)
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle
R1+32	URL for which to unlock the cache file (<string_value=>msg_plugin_string_value>)DATA�Message_PlugIn_StreamNew  (&4D548)
R1+16	Message_PlugIn_StreamNew (&4D548)

Common fields:
R1+20	Flag bits :
	  0-3:	stream type field:
	 	 	0 = normal
	 	 	1 = seek only
	 	 	2 = as file
	 	 	3 = as file only
	  4:		Set; stream is seekable
	  1:	reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle

Common stream fields:
R1+32	PlugIn stream instance handle
R1+36	Browser stream instance handle
R1+40	URL of stream source/dest (<string_value=>msg_plugin_string_value>)
R1+44	End of stream in bytes, or 0 if unknown
R1+48	Last modified date of URL (in UNIX time format)
R1+52	Notify data
R1+56	MIME type of URL (<string_value=>msg_plugin_string_value>)
R1+60	Window target (<string_value=>msg_plugin_string_value>)DATAkMessage_PlugIn_StreamDestroy  (&4D549)
R1+16	Message_PlugIn_StreamDestroy (&4D549)

Common fields:
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle

Common stream fields:
R1+32	PlugIn stream instance handle
R1+36	Browser stream instance handle
R1+40	URL of stream source/dest (<string_value=>msg_plugin_string_value>)
R1+44	End of stream in bytes, or 0 if unknown
R1+48	Last modified date of URL (in UNIX time format)
R1+52	Notify data
R1+56	Reason:
	0:	Stream finished successfully
	1:	Stream finished due to an error
	2:	Stream finished due to user intervention
DATA�Message_PlugIn_StreamWrite  (&4D54A)
R1+16	Message_PlugIn_StreamWrite (&4D54A)

Common fields:
R1+20	Flag bits:
	  0-3:	Data type field
	 	  0: <string_value=>msg_plugin_string_value>
	 	  1: anchor
	 	  2: file handle
	  4-31:	reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle

Common stream fields:
R1+32	PlugIn stream instance handle
R1+36	Browser stream instance handle
R1+40	URL of stream source/dest (<string_value=>msg_plugin_string_value>)
R1+44	End of stream in bytes, or 0 if unknown
R1+48	Last modified date of URL (in UNIX time format)
R1+52	Notify data
R1+56	Logical offset in stream of data
R1+60	Length of data
R1+64	Data pointer
DATAHMessage_PlugIn_StreamWritten  (&4D54B)
R1+12	my_ref fied from Message_PlugIn_StreamWrite
R1+16	Message_PlugIn_StreamWritten (&4D54B)

Common fields:
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle

Common stream fields:
R1+32	PlugIn stream instance handle
R1+36	Browser stream instance handle
R1+40	URL of stream source/dest (<string_value=>msg_plugin_string_value>)
R1+44	End of stream in bytes, or 0 if unknown
R1+48	Last modified date of URL (in UNIX time format)
R1+52	Notify data
R1+56	Length of data consumed, \<0 if errorDATA1Message_PlugIn_StreamAsFile  (&4D54C)
R1+16	Message_PlugIn_StreamAsFile (&4D54C)

Common fields:
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle

Common stream fields:
R1+32	PlugIn stream instance handle
R1+36	Browser stream instance handle
R1+40	URL of stream source/dest (<string_value=>msg_plugin_string_value>)
R1+44	End of stream in bytes, or 0 if unknown
R1+48	Last modified date of URL (in UNIX time format)
R1+52	Notify data
R1+56	File name of stream data (<string_value=>msg_plugin_string_value>)DATAnMessage_PlugIn_URLAccess  (&4D54D)
R1+16	Message_PlugIn_URLAccess (&4D54D)

Common fields:
R1+20	Flag bits:
	  0:	Set; return a notify message on completion
	  1:	Set; POST to the URL
	 	Clear; GET from the URL
	If bit 1 is set :
	  2:	Set; POST a file
	 	Clear; POST a block of memory
	Bits 3-31:	reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle
R1+32	URL to access (<string_value=>msg_plugin_string_value>)
R1+36	Window target (<string_value=>msg_plugin_string_value>)
R1+40	Notify data to be returned
R1+44	Length of data to be POSTed
R1+48	If bit 2 is set; filename (<string_value=>msg_plugin_string_value>)
	If bit 2 is clear; pointer to data (<string_value=>msg_plugin_string_value>)

If the window target is non-null then the URL is fetched to the given window name.  Otherwise a stream is opened and data is sent to the plugin.
DATA�Message_PlugIn_Notify  (&4D54E)
R1+16	Message_PlugIn_Notify (&4D54E)

Common fields:
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle
R1+32	URL accessed (<string_value=>msg_plugin_string_value>)
R1+36	Reason for notify:
	  0:	Stream finished successfully
	  1:	Stream finished due to an error
	  2:	Stream finished due to user intervention
R1+40	Notify data
DATAtMessage_PlugIn_Status  (&4D54F)
R1+16	Message_PlugIn_Status (&4D54F)

Common fields:
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle
R1+32	Status message (<string_value=>msg_plugin_string_value>)

Requires that the parent display some information in its status bar or similar.  The message should be resonably short.DATA Message_PlugIn_Busy  (&4D550)
R1+16	Message_PlugIn_Busy (&4D550)

Common fields:
R1+20	Flag bits:
	  0:	Set; PlugIn is busy
	 	Clear; PlugIn is not busy
	  1:	Set; state at R1+32 has some meaning
	 	Clear; ignore word at R1+32
	  2-31:	reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle
R1+32	State:
	  0: Stop
	  1: Play
	  2: Pause
	  3: Fast Forward
	  4: Rewind
	  5: Record

Requests that the parent display some indication of business (e.g. spinning logo, etc.).  If the plugin has set the busy bit in its <PlugIn_Opening=>Msg_Plugin_4D541> message then it should send this message with bit 0 clear when it has finished its loading.

This is also used to notify the parent of any state change by the plugin in case it needs to update any user interface.
DATA�Message_PlugIn_Action  (&4D551)
R1+16	Message_PlugIn_Action (&4D551)

Common fields:
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle
R1+28	Browser instance handle
R1+32	New state:
	  0: Stop
	  1: Play
	  2: Pause
	  3: Fast Forward
	  4: Rewind
	  5: Record
	  6: Mute
	  7: Unmute

This message is used for sending specific commands to a plugin.  Not all plugins will understand the commands sent.

The new state sent it the state the plugin should enter.  If it is already in that state, then it should ignore the message.

After entering the state, it should send back a <PlugIn_Busy=>Msg_Plugin_4D550> message giving the new state except for the Mute and Unmute actions.
DATABMessage_PlugIn_Abort  (&4D552)
R1+16	Message_PlugIn_Abort (&4D552)

Common fields:
R1+20	Flags, reserved (must be zero)
R1+24	PlugIn instance handle

This message is send by the browser when the user clicks on the Stop icon (or performs its equivalent).  The plugin should stop as much of its activity as possible.  Specifically, anything that updates the screen, anything that uses significant processor time and anything that accesses the network should be suspended.

Note that this message is sent to each plugin instance individually and should be treated as such.
DATA�PlugIn Protocol Data Formats
The Message_PlugIn_Open contains a filename that refers to a file of parameters and attributes.  This plugin uses this information to locate the correct data, classes, implementation, etc.

The file contains the concatenation of one or more binary records of the form:

Bytes	Purpose
#Line
4	Type:
	 	0:	terminator (this is the last word in the file)
	 	1:	data from PARAM
	 	2:	URL from PARAM
	 	3:	object ref from PARAM
	 	4:	special parameter from browser
	 	5:	data from OBJECT/APPLET
	 	6:	URL from OBJECT/APPLET
4	size of record (without header):
	(4+n+p) + (4+s+q) + (4+t+r) bytes
4	size of name (unpadded)
n	name
p 	padding to word boundary
4	size of data (unpadded)
s	data
q	padding to word boundary
4	size of MIME type (unpadded)
t	MIME type
r	padding to word boundary

Integers are stored un little-endian order.  Flags (parameters with void value whose presence or absence only is significant) are represented by a parameter of type DATA with zero length.

The parameters include:
� all the attributes of the OBJECT (or other) element that references this plugin
� all the PARAM elements enclosed within it
� special parameters created by the browser

These parameters are passed exactly as seen in the HTML without any conversions. The data/URL/ref distinction is as given in the DTD (or OBJECT attributes) or in the VALUETYPE attribute of the PARAM element.

The plugin may implement its own URL fetching code, or it may have the browser fetch URLs on its behalf by issuing a <URLAccess=>Msg_Plugin_4D54D> message to the browser.

Special parameters are created by the browser (rather than being part of the object element).  They are:
	BASEHREF
	 	The full URL of the document containing this object.
	USERAGENT
	 	The name of the browser.
	UAVERSION
	 	Version number of the browser (user agent) in format 'x.y'.  If the plugin needs a specific browser feature, it may refuse to initialise if this version is not high enough.
	APIVERSION
	 	Version number if the API in format 'x.y'.  Changes in x mean a major incompatible change in formats.  If the plugin doesn't understand this version it should refuse to initialise.  Changes in y mean some new functionality introduced in a backwards compatible way.
DATA�PlugIn Protocol Messages
#Parent Msg_
&4D540	<Message_PlugIn_Open=>Msg_Plugin_4D540>
&4D541	<Message_PlugIn_Opening=>Msg_Plugin_4D541>
&4D542	<Message_PlugIn_Close=>Msg_Plugin_4D542>
&4D543	<Message_PlugIn_Closed=>Msg_Plugin_4D543>
&4D544	<Message_PlugIn_Reshape=>Msg_Plugin_4D544>
&4D545	<Message_PlugIn_Reshape_Request=>Msg_Plugin_4D545>
&4D546	<Message_PlugIn_Focus=>Msg_Plugin_4D546>
&4D547	<Message_PlugIn_Unlock=>Msg_Plugin_4D547>
&4D548	<Message_PlugIn_StreamNew=>Msg_Plugin_4D548>
&4D549	<Message_PlugIn_StreamDestroy=>Msg_Plugin_4D549>
&4D54A	<Message_PlugIn_StreamWrite=>Msg_Plugin_4D54A>
&4D54B	<Message_PlugIn_StreamWritten=>Msg_Plugin_4D54B>
&4D54C	<Message_PlugIn_StreamAsFile=>Msg_Plugin_4D54C>
&4D54D	<Message_PlugIn_URLAccess=>Msg_Plugin_4D54D>
&4D54E	<Message_PlugIn_Notify=>Msg_Plugin_4D54E>
&4D54F	<Message_PlugIn_Status=>Msg_Plugin_4D54F>
&4D550	<Message_PlugIn_Busy=>Msg_Plugin_4D550>
&4D551	<Message_PlugIn_Action=>Msg_Plugin_4D551>
&4D552	<Message_PlugIn_Abort=>Msg_Plugin_4D552>

#fH4:Note:
This protocol was defined in a Clan newsletter. As such the documentation has not been checked for accuracy, or usefulness. I will get around to this eventually. Many of the links may be broken. I'll fix them when I get a chance. (Ed.)
DATAT'String_value' in the Plugin Protocol
Many of the strings passed around in this protocol are of unspecified size and may, especially in the case of URL's, be larger than could fit within the body of a wimp message. Therefore, they are defined in this spec as {fCode}string_value{f}s.

These are also used in the Browser spec and are defined as being either :
#Indent 2
�	if \< 256, offsets from the start of the message body
�	if \> 256, pointers to data held in shared memory (ie the RMA or a dynamic area).
#indent

It is always the responsibility of the sender to free the memory used for any pointers after they are no longer requied.

The protocol is defined in such a way that there should always be a reply received or the message will be bounced by the Wimp. In either case it is then safe for the sender to free the memory allocated. 
DATA�Message_WindowIconize  (&400CA)
# Part of the iconiSe protocol.
# Hey, and YouThoughtStudlyCapsWereBad
#Parent MSG_
 + 20	window handle
 + 24	task handle of owner
 + 28	20 bytes of title string (last part of first word)
 
This message is broadcast by the Wimp when a window's close icon is shift clicked. If an iconiser (sic) is absent nothing will happen. If one is present it will acknowledge the message, and send <Message_WindowInfo=>Msg_400CC> to the window.
DATA�Message_WindowClosed  (&400CB)
#Parent MSG_
 + 20	window handle
 
This message is broadcast whjen a window is closed, so that the iconiser can remove the icon
DATAMessage FilerOpenDirAt (&402)
#Parent MSG_
+ 20	<filing system number=>OS:fsys_ident>
+ 24	0 (flags, all bits reserved)
+ 28	x position
+ 32	y position
+ 36	width
+ 40	height
+ 44	<view mode=>.viewmode>
+ 45	name of directory, zero terminated.

This message is similar to <Message_FilerOpenDir=>MSG_400>, but allows the position and mode of the viewer to be specified.

PRM states offset of name as 25. This should be 45 (not 48).
#Subpage viewmode
FilerOpenDirAt viewmode flags
Bits	Value	Meaning
#Line
0-1	0	Large icons
	1	Small icons
	2	Full info
	3	undefined
2-3	0	Sort by name
	1	Sort by type
	2	Sort by size
	3	Sort by date
4	0	use default display mode
	1	use display in bits 0-1
5	0	use default sort mode
	1	use sort in bits 2-3

PRM page 3-234 description of bits 2-3 is wrong.
DATA�Message FilerSelectionDirectory (&403)
#Parent MSG_
+ 20	null terminated directory name

Sending this message to a <Filer_Action=>FilerAction_> task sets the directory to act on, and clears the list of leafnames.
DATAiMessage FilerAddSelection (&404)
#Parent MSG_
+ 20	null terminated space separated list of leafnames

Sending this message to a <Filer_Action=>FilerAction_> task adds the leafnames to the task's list of leafnames to act upon. The leafnames are for files in the directory which has already been specified with <Message_FilerSelectionDirectory=>MSG_403>.
DATA�Message FilerAction (&405)
#Parent MSG_
+ 20	operation:
# Gumby brain surgeon.
	  0 <Copy=>.0>
	  1 <Move (rename)=>.1>
	  2 <Delete=>.2>
	  3 <Set access=>.3>
	  4 <Set type=>.4>
	  5 <Count=>.5>
	  6 <Move (by copying/deleting)=>.6>
	  7 <Copy local (within directory)=>.7>
	  8 <Stamp files=>.8>
	  9 <Find file=>.9>
+ 24	<options=>FilerAction_options>
+ 28	operation specific data

Sending this message to a <Filer_Action=>FilerAction_> task both specifies and starts the operation to perform on the list of leafnames sent with <Message_FilerAddSelection=>MSG_404>.
# Gerph> I have this amazing feeling of deja vu - I've seen this list before,
#        haven't I ?
#Subpage 0
FilerAction 0 (Copy)
+ 20	0 (Copy)
+ 24	<options=>FilerAction_options>
+ 28	null terminated destination directory
#Subpage 1
FilerAction 1 (Rename)
+ 20	1 (Rename)
+ 24	<options=>FilerAction_options>
+ 28	null terminated destination directory
#Subpage 2
FilerAction 2 (Delete)
+ 20	2 (Delete)
+ 24	<options=>FilerAction_options>
#Subpage 3
FilerAction 3 (Set access)
+ 20	3 (Set access)
+ 24	<options=>FilerAction_options>
+ 28	value of access bits to set
+ {*}30{*}	mask

#tab
New access =	(Old�access�{fCode}BIC{f}�mask) {fCode}ORR{f} (value�{fCode}AND{f}�mask)
#Subpage 4
FilerAction 4 (Set type)
+ 20	4 (Set type)
+ 24	<options=>FilerAction_options>
+ 28	numeric <filetype=>Filetypes:!Root>
#Subpage 5
FilerAction 5 (Count)
+ 20	5 (Count)
+ 24	<options=>FilerAction_options>
#Subpage 6
FilerAction 6 (Move)
+ 20	6 (Move)
+ 24	<options=>FilerAction_options>
+ 28	null terminated destination directory
#Subpage 7
FilerAction 7 (Copy local)
+ 20	7 (Copy local)
+ 24	<options=>FilerAction_options>
+ 28	null terminated destination object name
#Subpage 8
FilerAction 8 (Stamp)
+ 20	8 (Stamp)
+ 24	<options=>FilerAction_options>
#Subpage 9
FilerAction 9 (Find)
+ 20	9 (Find)
+ 24	<options=>FilerAction_options>
+ 28	null terminated name to find
DATACMessage FilerControlAction (&406)
#Parent MSG_
+ 20	control:
	0	acknowledge control message
	1	verbose on (show the action window)
	2	verbose off (hide the action window)

Sending this message to a <Filer_Action=>FilerAction_> task performs various controls. Control 0 can be used to see if the task is still busy.
DATA�Message FilerSelection (&407)
#Parent MSG_
+ 20	selection bounding box	x0 (screen coords)
+ 24	 			y0
+ 28	 			x1
+ 32	 			y1
+ 36	width of each selected item
+ 40	height
+ 44	<view mode=>.viewmode>
+ 48	start column of selection in window
+ 52	start row
+ 56	end column
+ 60	end row

This message is sent from the filer to an application when a selection has been dragged, just before the application recieves the multiple <DataLoad=>Msg_3> messages.
#Subpage viewmode
FilerSelection viewmode flags
Bits	Value	Meaning
#Line
0-1	0	Large icons
	1	Small icons
	2	Full info
	3	reserved
2-3	0	Sort by name
	1	Sort by type
	2	Sort by size
	3	Sort by date

PRM page 3-238 description of bits 2-3 is probably wrong.
DATA�	Message_AlarmSet (&500)
#Parent MSG_
(Format from application to !Alarm)

+ 20	0	<set alarm (local time)=>.0>
	1	<set alarm (UTC)=>.1>
	2	<cancel alarm=>.2>
+ 24	depends on reason at + 20

This message can be used to set/cancel alarms. If the message is sent recorded then !Alarm acknowledges with 0 if successful or a null terminated error string. Presumably this is in the message block at + 20, but the PRM is not clear. This would mean that the message block format is inconsistent, depending on whether it is to or from the application. D'oh.
 
Oddly this message is not available in RISC OS 2, but it would seem that it had been planned as <502=>Msg_502> and <503=>Msg_503> are present in RISC OS 2.

Note that <Message_AlarmSet 0=>.0> is capable of adding out-of-range alarms to the database, which !Alarm will fault on redraw (but not fault on save!).

When the task alarm goes off !Alarm broadcasts <Message_AlarmGoneOff=>MSG_501>, which your application should acknowledge.
#Subpage 1
Message_AlarmSet 1
+ 20		1 (set UTC alarm)
+ 24		5 byte UTC time
+ {*}30{*}	name of application (null terminated)
+ /n/	application's identifier (null terminated)

This message instructs !Alarm to set an alarm. Name and identifier must each be 40 or less bytes.
#Subpage 0
Message_AlarmSet 0
+ 20	0 (set local time alarm)
+ 24	year as low-byte, high byte
+ 26	month, Janauary is 1
+ 27	date
+ 28	hour
+ 29	minute
+ 30{*}	name of application (null terminated)
+ /n/	application's identifier (null terminated)

This message instructs !Alarm to set an alarm. Name and identifier must each be 40 or less bytes. !Alarm performs range checks (so an hour of 30 gives 6am the next day) but will happily add alarms out of the range (roughly \< 1900 or > 2247), and then quit with an error when it attempts to display them. By keeping this window closed, and saving the alarms file when quitting !Alarm, it is possible to write these illegal alarms to a file. Fortunately they can be deleted with <Message_AlarmSet 2=>.2>.

Note that the 6 byte block from + 24 is how !Alarm stores times in the current file format.
# Gerph> An amazingly badly planned thing IMO. Why not use the 5byte time
#        block used by the rest of the system ?
#Subpage 2
Message_AlarmSet 2
+ 20	2 (cancel alarm)
+ 24	name of application (null terminated)
+ /n/	application's identifier (null terminated)

This message instructs !Alarm to delete an alarm that exactly matches both the name and identifier.
DATA�Message_AlarmGoneOff (&501)
#Parent MSG_
+ 20	name of application (null terminated)
+ /n/	application's identifier (null terminated)

This message is broadcast by !Alarm when an application alarm goes off. If the message is not acknowledged !Alarm 'prompts' the user to start the application (with a non-multi-tasking error box), and defers the alarm for 1 minute, before restarting this message broadcast procedure.
DATA�Message_DataSavd (13)
#Parent MSG_
This message is sent back to the originator of a saved file if at some later time it becomes "safe" ({/}i.e.{/} on disc). You should compare the <your_ref=>Wimp_SendMessage1> in this message with the my_ref you stored when you sent the original <DataSave=>Msg_1> message - if they tally the file can now be marked as safe, unless the user had edited it in the meantime.

Probably the best implementation is for your program to store the my_ref with the file, but zero it on any modification, as 0 will not be a valid your_ref. It appears that this message is designed for cases where one program saves a file to another program, and then that second program saves the unmodified file to disc.
DATA�Message_Shutdown  (14)
#Parent MSG_
+ 20	0 (all flags reserved)

This message is broadcast when <TaskManager_Shutdown> is called with bit 3 of R0 set, to indicated a forced shutdown, for example due to power failure.
DATA@Message_EditCursor (&45D85)
#Parent MSG_
+ 20	reserved
+ 24	<Job handle=>Msg_ExtEditJobHandle>
+ 28	<Flag word=>Msg_ExtEditFlags>
+ 32	New cursor position*
+ 36	New start of selection*
+ 40	New end of selection*
+ 44	Old cursor* (reply only)
+ 48	Old start of selection* (reply only)
+ 52	Old end of selection* (reply only)

This message is sent by a client who wishes the editor to position its cursor exactly. The reply is then rturned by the editor to indicate the old cursor, start and end positions.

All data has positions starting with the first unit as 1, the next as 2 and so on. To position a pointer before the start of the data use 0, and after the end use -2.

{fH4}Special cursor meanings{f}
To leave a field unchanged it should use -1, therefore three -1's will read the current position of the cursor. If there is no concept of cursor or selection then the appropriate fields must be set to -1 by the editor. The editor should never return -2 as a position.

Unit meanings are different depending on the filetype, click <here=>Msg_ExtEditCursorUnits> for details.
DIR$,,�F���J��!RootDATA�ColourPicker
#Parent !Root
#Prefix ColourPicker_
#Table Columns 2
RegisterModel
DeregisterModel
OpenDialogue
CloseDialogue
UpdateDialogue
ReadDialogue
SetColour
HelpReply
ModelSWI
#EndTable
DIR$����F����R1E!RootԃH����k'�StartąH���A5�'locflagsЇF����M�$`box0�H���(�j'*StopDATAEDragASprite
#Parent !Root
#Prefix DragASprite_
<Start>
<Stop>DATA�DragASprite_Start  (&42400)
#Parent DragASprite_
=>	R0 =	Location <flags=>DragASprite_locflags>
	R1 =	<Sprite area=>OS:OS_SpriteOp_Area> (0 for system, 1 for Wimp, otherwise an address)
	R2 =	Pointer to sprite name
	R3 =	Pointer to 16-byte block containing <drag box=>DragASprite_box>
	R4 =	Pointer to optional block containing <bounding box=>DragASprite_box>

This SWI starts dragging a sprite. The sprite you supply is copied, so you can dispose of your copy of the sprite if need be.
DATADrag location flags
Bits	Meaning
#Line
0-1	Horizontal location of sprite in box:
	 00	Left
	 01	Centre
	 10	Right
	 11	undefined
2-3	Vertical location of sprite in box:
	 00	Bottom
	 01	Centre
	 10	Top
	 11	undefined
4-5	Drag bounding box is:
	 00	Whole screen
	 01	Display area of window that the pointer is over
	 10	User specified
	 11	undefined
6	Bounding box applies to:
	 0	The box
	 1	The pointer
7	Use drop shadow
8	Don't dither sprite (RISC OS 3.5 onwards)
9-31	Reserved for future use, should be set to 0.
DATA`Box block
Offset	Use
#Line
#Wrap Off
0	x0 (left)
4	y0 (bottom)
8	x1 (right)
12	y1 (top)
DATA*DragASprite_Stop  (&42401)
#Parent DragASprite_
No params

This SWI terminates any current drag operation and releases any drag-a-sprite workspace claimed to do a drag. It is expected that this SWI will be called when the <User Dragb Box=>Wimp_Poll7> reason is received by the application.
DIR$��P�G���;���!Root�H�����(example$�H���c�&'SendSelectedDirectoryL�H����f�&.SendSelectedFile|�H�����(�SendStartOperationx�H����=�&�optionsDATA�FilerAction
#Parent !Root
#Prefix FilerAction_
#Table Columns 2
<SendSelectedDirectory>
<SendSelectedFile>
<SendStartOperation>
#EndTable

<Example of use=>FilerAction_Example>
DATAExample of using Filer_Action
#Parent Filer_
Here is a BASIC example of how to use the Filer_Action module to Copy files with Verbose on via the multitasking Filer Action Window.

{fcode}SYS "<Wimp_StartTask>","Filer_Action" TO taskhandle%
SYS "<FilerAction_SendSelectedDirectory>",taskhandle%,sourcedirectorypathname$
SYS "<FilerAction_SendSelectedFile>",taskhandle%,sourcefilesleafnames$
SYS�"<FilerAction_SendStartOperation>",taskhandle%,0,1,targetdirectorypathname$+CHR$0,LEN(targetdirectorypathname$)+1
{f}

Note:
The exact pathname of 'source/targetdirectorypathname$' will appear in the Filer Action window, so if you use a system variable in this then it looks untidy and the user will not be shown the true path being used.

�	Remember that this is RISC OS 3 or above only.
DATA'FilerAction_SendSelectedDirectory  (&40F80)
#Parent FilerAction_
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	pointer to full pathname of source directory you wish to start an action on.

This SWI sends <Message_FilerSelectionDirectory=>MSG_403> to the Filer_Action task.
DATA.FilerAction_SendSelectedFile  (&40F81)
#Parent FilerAction_
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	pointer to leafnames of files to be acted upon.

Each filename has to be separated by a single space - {/}e.g.{/} '{fCode}File1 File2 File3{f}'.

This SWI buffers filenames until it fills a message block, at which point it sends them to the Filer_Action task using <Message_FilerAddSelection=>MSG_404>.

To start the operation see <FilerAction_SendStartOperation> (which will first send any remaining buffered names to the task).
DATA�FilerAction_SendStartOperation (&40F82)
#Parent FilerAction_
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	reason code:
	 	  0 <Copy=>.0>
	 	  1 <Move (rename)=>.1>
	 	  2 <Delete=>.2>
	 	  3 <Set access=>.3>
	 	  4 <Set type=>.4>
	 	  5 <Count=>.5>
	 	  6 <Move (by copying/deleting)=>.6>
	 	  7 <Copy local (within directory)=>.7>
	 	  8 <Stamp files=>.8>
	 	  9 <Find file=>.9>
# Gerph> Yes, I prefer this layout
	R2 =	<options=>FilerAction_options>
	R3 =	*pointer* to reason dependent data
	R4 =	length of data (including terminating "\\0" for strings)

This SWI sends any remaining leafnames with <Message_FilerAddSelection=>MSG_404>, then starts the selected operation by constructing and sending <Message_FilerAction=>MSG_405>. Reason dependent data is always a pointer, even for word sized data. Usually the data is a destination pathname.
#Subpage 0
FilerAction 0 (Copy)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	0 (Copy)
	R2 =	<options=>FilerAction_options>
	R3 =	null terminated destination directory
	R4 =	length (including terminating null)
#Subpage 1
FilerAction 1 (Rename)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	1 (Rename)
	R2 =	<options=>FilerAction_options>
	R3 =	null terminated destination directory
	R4 =	length (including terminating null)
#Subpage 2
FilerAction 2 (Delete)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	2 (Delete)
	R2 =	<options=>FilerAction_options>
	R3 =	unused
	R4 =	0
#Subpage 3
FilerAction 3 (Set access)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	3 (Set access)
	R2 =	<options=>FilerAction_options>
	R3 =	*pointer* to word giving access
	R4 =	4

The high 2 bytes of the word give the mask, the low 2 bytes the value.

#tab
New access =	(Old�access�{fCode}BIC{f}�mask) {fCode}ORR{f} (Value�{fCode}AND{f}�mask)
#Subpage 4
FilerAction 4 (Set type)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	4 (Set type)
	R2 =	<options=>FilerAction_options>
	R3 =	*pointer* to word giving numeric <filetype=>Filetypes:!Root>
	R4 =	4
#Subpage 5
FilerAction 5 (Count)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	5 (Count)
	R2 =	<options=>FilerAction_options>
	R3 =	unused
	R4 =	0
#Subpage 6
FilerAction 6 (Move)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	6 (Move)
	R2 =	<options=>FilerAction_options>
	R3 =	null terminated destination directory
	R4 =	length (including terminating null)
#Subpage 7
FilerAction 7 (Copy local)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	7 (Copy local)
	R2 =	<options=>FilerAction_options>
	R3 =	null terminated destination object name
	R4 =	length (including terminating null)
#Subpage 8
FilerAction 8 (Stamp)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	8 (Stamp)
	R2 =	<options=>FilerAction_options>
	R3 =	unused
	R4 =	0
#Subpage 9
FilerAction 9 (Find)
=>	R0 =	handle of the task Filer_Action just started.
	R1 =	9 (Find)
	R2 =	<options=>FilerAction_options>
	R3 =	null terminated name to find
	R4 =	length (including terminating null)
DATA�Filer_Action option bits
#Parent FilerAction_
Bit	Meaning when set
#Line
0	Verbose
1	Confirm
2	Force
3	Newer
4	Recurse (only applies to set access)
DIR$���H���E�\!^!Rootd�H����	(RegisterPreFilterl�H���lL	(Jfiltercode��H����]	(�RegisterPostFilter<�H������(�DeRegisterPreFilterԪH���s��(�DeRegisterPostFilter��H���Vg	(�DeRegisterRectFilterl�H���Zm	(�DeRegisterPostRectFilterP�H���\?[!HRegisterRectFilter��H���*8[!NRegisterPostRectFilter�H�����[!rectcode�H���Rk	(�DeRegisterPostIconFilter�H����\!�RegisterPostIconFilterx�H���<|\!�RegisterCopyFilterT�H���i	(�DeRegisterCopyFilter��H����\!oiconcodeh�H���ʤ\!�copycodeDATA^Filter
#Prefix Filter_
#Parent !Root
#Table Columns 3
<DeRegisterPostFilter>
<DeRegisterPreFilter>
<RegisterPostFilter>
<RegisterPreFilter>
<RegisterRectFilter>
<DeRegisterRectFilter>
<RegisterCopyFilter>
<DeRegisterCopyFilter>
<RegisterPostRectFilter>
<DeRegisterPostRectFilter>
<RegisterPostIconFilter>
<DeRegisterPostIconFilter>
#EndTable
DATAFilter_RegisterPreFilter  (&42640)
#Parent Filter_
=>	R0 =	Pointer to zero terminated filter name
	R1 =	Address of <filter code=>Filter_filtercode>
	R2 =	Value to be passed in R12
	R3 =	Task handle of task to which filter is applied or 0 for all tasks

<=	all registers preserved

Adds a new pre-filter to the list of pre-filters.

Whenever the task with handle specified by R3 calls <Wimp_Poll> the address pointed to by R1 will be called, with R12 set to the value given in R2 when the filter was registered.
DATAJFilter code
#Parent Filter_
#Wrap Off
=>	R0 =	Event mask as passed to <Wimp_Poll> for Pre filters
	 	Event reason code being returned for Post filters
	R1 =	User's event buffer
	R2 =	Task handle of task that called Wimp_Poll
	R12 =	Value of R2 when filter registered
#Wrap

<=	Pre:	It may clear bits in R0 to provide a new event mask
	 	It must preserve all other registers

	Post:	The routine may modify the reason code in R0 and the contents of the buffer pointed to by R1 to provide a new event
	 	R0 = -1 to prevent event being passed to task
	 	It must preserve R1 and R2.
DATA�Filter_RegisterPostFilter  (&42641)
#Parent Filter_
=>	R0 =	Pointer to zero terminated filter name
	R1 =	Addresss of <filter code=>Filter_filtercode>
	R2 =	Value to be passed in R12
	R3 =	Task handle of task to which filter is applied or 0 for all tasks
	R4 =	Event <mask=>Wimp_pollmask> (1 bit masks the event out as for <Wimp_Poll>)

<=	all registers preserved

This SWI adds a new post filter to the list of post filters. Whenever the Wimp is about to return from <Wimp_Poll> to the task with handle specified by R3, the address pointed to by R1 will be called, with R12 set to the value given in R2 when the filter was registered.
DATA�Filter_DeRegisterPreFilter  (&42642)
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	addresss of <filter code=>Filter_filtercode>
	R2 =	value to be passed in R12
	R3 =	task handle of task to which filter was applied

<=	all registers preserved

Removes a pre filter from the list of pre filters.

Note: All values must be the same as those passed to <Filter_RegisterPreFilter>.
DATA�Filter_DeRegisterPostFilter  (&42643)
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	addresss of <filter code=>Filter_filtercode>
	R2 =	value to be passed in R12
	R3 =	task handle of task to which filter was applied
	R4 =	event <mask=>Wimp_pollmask>
	
<=	all registers preserved

This SWI removes a post-filter from the list of post-filters.

Note: All values must be the same as those passed to <Filter_RegisterPostFilter>
DATA�Filter_DeRegisterRectFilter
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	addresss of <filter code=>Filter_rectcode>
	R2 =	value to be passed in R12
	R3 =	task handle of task to which filter was applied
	
<=	all registers preserved

This SWI removes a <Wimp_GetRectangle> pre-filter from the list.

Note: All must be the same as those passed to <Filter_RegisterRectFilter>.

*Note:* This is still only a 'guess' at the way it works.
DATA�Filter_DeRegisterPostRectFilter
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	addresss of <filter code=>Filter_rectcode>
	R2 =	value to be passed in R12
	R3 =	task handle of task to which filter was applied
	
<=	all registers preserved

This SWI removes a <Wimp_GetRectangle> post-filter from the list.

Note: All registers must be the same as those passed to <Filter_RegisterPostRectFilter>.

*Note:* This is still only a 'guess' at the way it works.
DATAHFilter_RegisterRectFilter
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	address of <filter code=>Filter_rectcode>
	R2 =	value to be passed in R12
	R3 =	task handle of task to which filter is applied or 0 for all tasks

<=	all registers preserved

Adds a new <Wimp_GetRectangle> pre-filter to the list of pre-filters.

The address pointed to by R1 will be called whenever the task who's handle is passed in R3 calls <Wimp_GetRectangle> with R12 equal to the value of R2 when this SWI is called.

*Note:* This is still only a 'guess' at the way it works.
DATANFilter_RegisterPostRectFilter
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	address of <filter code=>Filter_rectcode>
	R2 =	value to be passed in R12
	R3 =	task handle of task to which filter is applied or 0 for all tasks

<=	all registers preserved

Adds a new <Wimp_GetRectangle> post-filter to the list of post-filters.

The address pointed to by R1 will be called whenever the task who's handle is passed in R3 calls <Wimp_GetRectangle> with R12 equal to the value of R2 when this SWI is called.

*Note:* This is still only a 'guess' at the way it works.
DATAFilter Wimp_GetRectangle code
#Parent Filter_RegisterRectFilter
#Wrap Off
{*}Pre:{*}
=>	R1 =	pointer to user block
	R12 =	value of R2 when filter registered
<=	all registers preserved

You should not fiddle with these things, I would have thought.

{*}Post:{*}
=>	R0 =	0 if no more to redraw
	R1 =	pointer to <updated user block=>wimp_getrectangle_block>
	R12 =	value of R2 when filter registered
<=	all registers preserved

You can probably modify the updated block, but R0 and R1 should probably remain as passed.
DATA�Filter_DeRegisterPostIconFilter
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	addresss of <filter code=>Filter_iconcode>
	R2 =	value to be passed in R12
	R3 =	task handle of task to which filter was applied
	
<=	all registers preserved

This SWI removes a <Wimp_GetRectangle> icon plotting post-filter from the list.

Note: All registers must be the same as those passed to <Filter_RegisterPostIconFilter>.

*Note:* This is still only a 'guess' at the way it works.
DATA�Filter_RegisterPostIconFilter
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	address of <filter code=>Filter_iconcode>
	R2 =	value to be passed in R12
	R3 =	task handle of task to which filter is applied or 0 for all tasks

<=	all registers preserved

Adds a new <Wimp_GetRectangle> icon plotting post-filter to the list of post-filters.

The address pointed to by R1 will be called whenever the task who's handle is passed in R3 calls <Wimp_GetRectangle> and just after the windows icons have been plotted with R12 equal to the value of R2 when this SWI is called.

*Note:* This is still only a 'guess' at the way it works.
DATA�Filter_RegisterCopyFilter
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	address of <filter code=>Filter_copycode>
	R2 =	value to be passed in R12

<=	all registers preserved

Adds a new <Wimp_BlockCopy> pre-filter to the list of pre-filters.

The address pointed to by R1 will be called whenever a task calls <Wimp_BlockCopy> with R12 equal to the value of R2 when this SWI is called.

*Note:* This is still only a 'guess' at the way it works.
DATA�Filter_DeRegisterCopyFilter
#Parent Filter_
=>	R0 =	pointer to zero terminated filter name
	R1 =	addresss of <filter code=>Filter_copycode>
	R2 =	value to be passed in R12
	
<=	all registers preserved

This SWI removes a <Wimp_BlockCopy> pre-filter from the list.

Note: All registers must be the same as those passed to <Filter_RegisterCopyFilter>.

*Note:* This is still only a 'guess' at the way it works.
DATAoFilter Wimp_GetRectangle icon plotting code
#Parent Filter_RegisterPostIconFilter
#Wrap Off
{*}Post:{*}
=>	R0 =	0 if no more to redraw
	R1 =	pointer to <updated user block=>wimp_getrectangle_block>
	R12 =	value of R2 when filter registered
<=	all registers preserved

You can probably modify the updated block, but R0 and R1 should probably remain as passed.
DATA�Filter Wimp_BlockCopy code
#Parent Filter_RegisterCopyFilter
#Wrap Off
=>	See <Wimp_BlockCopy>
	R12 =	value of R2 when filter registered

<=	all registers preserved

This code is called before the standard Wimp_BlockCopy code.
DIR$���G���oA�A!Root,�H���%bm'3RegisterL�H����im'+3DeRegisterx�H���/�Y%ZroutineDATAAFree
#Parent !Root
#Prefix Free_
<Register>
<DeRegister>
DATAFree_Register  (&444C0)
#Parent Free_
=>	R0 =	<filing system=>OS:fsys_ident>
	R1 =	address of <routine=>Free_routine> to get free space info
	R2 =	R12 on entry to routine

This SWI is used to provide the multi-tasking Free display. Remove these handlers with <Free_DeRegister>.
DATA+Free_DeRegister  (&444C1)
#Parent Free_
=>	R0 =	<filing system=>OS:fsys_ident>
	R1 =	address of <routine=>Free_routine> to get free space info
	R2 =	r12 on entry to routine

This SWI is used to remove the support for the multi-tasking Free display previously installed with <Free_Register>.
DATAZFree routine entry
#Parent Free_Register
=>	R0 =	0 (NoOp)
	 	1 (<GetFSName=>.1>)
	 	2 (<GetFreeSpace=>.2>)
	 	3 (<CompareDevice=>.3>)
	others dependant on R0

The routine will be called in User mode with a stack consisting /only/ of the return address (no other use should be made of it). The routine can either:

�	construct a new stack.
�	use the SVC stack by calling <OS:OS_EnterOS>, remembering to return to User mode before returning.
�	do all the hard work with a SWI (PRM suggests <OS_FSControl 49=>OS:OS_FSControl49> for reason 2, but this still alters registers that must be preserved somewhere...)
#Subpage 1
Free GetFSName (1)
=>	R0 =	1 (GetFSName)
	R1 =	<FS number=>OS:fsys_ident>
	R2 =	pointer to buffer
	R3 =	pointer to device or ID
<=	R0 =	length of name
	R1-R3 preserved

You should place the device name at R2 and the length of the name in R0.
#Subpage 2
Free GetFreeSpace (2)
=>	R0 =	2 (GetFreeSpace)
	R1 =	<FS number=>OS:fsys_ident>
	R2 =	pointer to 3 word buffer
	R3 =	pointer to device or ID
<=	R0-R3 preserved, R2 buffer :
	 	0 = total size of device (or 0 if unchanged)
	 	4 = free space on device
	 	8 = used space on device

This is used to find the free space on a device, which should be written to the buffer.
#Subpage 3
Free CompareDevice (3)
=>	R0 =	3 (CompareDevice)
	R1 =	<FS number=>OS:fsys_ident>
	R2 =	pointer to filename
	R3 =	pointer to device or ID
	R6 =	pointer to special field
<=	R0-R3 and R6 preserved
	Z set if R2, R6 point to a file on R3.

This call is used to check if a file exists on a particular drive. A *fast* filing system (RAMFS) is allowed to always return Z set.
DIR$��x�F����ah�q!Root��H���߭l'�EnumerateTasksp�H���s�l'CTaskNameFromHandle��H����	(�ShutdownDATAqTaskManager
#Parent !Root; Prefix TaskManager_; Wrap off
<EnumerateTasks>
<Shutdown>
<TaskNameFromHandle>DATA�TaskManager_EnumerateTasks  (&42681)
#Parent TaskManager_
=>	R0 =	0 for first call, or value from previous
	R1 =	pointer to buffer
	R2 =	size of buffer

<=	R0 =	value to use for next call, or \< 0 for no more
	R1 =	1st byte not used
	R2 =	bytes not used

This SWI returns information about the running tasks. (Same list as TaskManager displays.) For each task a 4 word block is returned :

#Tab
0	Task handle
4	Task name (which should be copied for keepsakes)
8	Slot size (K)
12	<Flags=>.flags>
#Subpage flags
Task flags
Bit	Meaning if set
#Line
0	module task (otherwise application task)
1	slot bar can be dragged (otherwise it can't)
DATACTaskManager_TaskNameFromHandle  (&42680)
#Parent TaskManager_
=>	R0 =	task handle
<=	R0 =	pointer to taskname

This SWI returns the description string which the task used when it called <Wimp_Initialise>, which is also the string shown in the task manager window. You should copy the string if you wish to keep it.
DATA�TaskManager_Shutdown  (&42682)
#Parent TaskManager_
=>	R0 =	<Shutdown flags=>.flags>

This call initialises a desktop shutdown. The actions preformed are controlled by the shutdown flags.
#Subpage flags
TaskManager_Shutdown types
Bit	Meaning when set
#Line
0	don't display restart dialogue
1	don't broadcast <Message_PreQuit=>Msg_8>
2	flag in <CMOS=>OS:OS_ByteCMOS> as portable PowerDown
3	send a <Message_Shutdown=>Msg_D>
4	reject <OS_Upcall 1 and 2=>OS:OS_UpCallreasons>
5-31	must be zero

If bit 2 is set, then it is flagged in CMOS that the last shutdown was forced by a low battery, and message reporting this is at issued next Desktop start.
DATA�# This is not an error, it is embedded in !Root and Wimp_!Root
#Table Columns 4
<AddMessages>
<BaseOfSprites>
<BlockCopy>
<ClaimFreeMemory>
<CloseDown>
<CloseTemplate>
<CloseWindow>
<CommandWindow>
<CreateIcon>
<CreateMenu>
<CreateSubMenu>
<CreateWindow>
<DecodeMenu>
<DeleteIcon>
<DeleteWindow>
<DragBox>
<Extend>
<ForceRedraw>
<GetCaretPosition>
<GetIconState>
<GetMenuState>
<GetPointerInfo>
<GetRectangle>
<GetWindowInfo>
<GetWindowOutline>
<GetWindowState>
<Initialise>
<LoadTemplate>
<OpenTemplate>
<OpenWindow>
<PlotIcon>
<Poll>
<PollIdle>
<ProcessKey>
<ReadPalette>
<ReadPixTrans>
<ReadSysInfo>
<RedrawWindow>
<RegisterFilter>
<RemoveMessages>
<ReportError>
<ResizeIcon>
<SendMessage>
<SetCaretPosition>
<SetColour>
<SetColourMapping>
<SetExtent>
<SetFontColours>
<SetIconState>
<SetMode>
<SetPalette>
<SetPointerShape>
<SetWatchdogState>
<SlotSize>
<SpriteOp>
<StartTask>
<TextColour>
<TextOp>
<TransferBlock>
<UpdateWindow>
<WhichIcon>
#EndTable
DIR$����H����O��!root��H����[$yBaseOfSprites��H���NNr*BlockCopy�E���wW�Fcarethfd�H�����n*�ClaimFreeMemory�G����ܕ�CloseDown�G���br�CloseTemplate��G������͂CommandWindow4�G���:���CreateIcon8�H�����wCreateMenu@�H������&�CreateSubMenu��G����E��CreateWindow��G���6��DecodeMenu�G���'>��TDeleteIconD�G���E��
DeleteWindowP�H���+�P'�ForceRedraw8�H����w�iconblock�H���1wHiconbutton\�E������icondataH���ry�iconflags�E������iconpositions�H���a[$yInitialise(G����r�OpenTemplateH���_Ql'�OpenWindow�H���ʏR'PlotIcon�H���aG]$ProcessKey�G���Ȱ��RedrawWindow�H����2X*
reporterrorF���K[ږreporterror0H�����]$ASlotSizeT H����\$YSpriteOp�!H���NER'�StartTaskH#G���-�u�TextColour�#G���"R��PTransferBlockL%H����[r*�UpdateWindow�'H����]yQvalidationstring87G����u"WhichIcon\8H����N'�windowblock�<H���+��windowflags�CF����O-D�workareabuttonflags�EH����V[$AddMessages�FH����T]$�RegisterFilterTGH���C[$�RemoveMessagesHHH����]$uTextOp�LH�����P'�DragBoxhQH�����+�Get|hH���"�+tSetxH�����+�PollܗH�����+�Sendmessage �H���d��+�Read��G���LH
�ModeSelect|�H���p�uModeString��H����!Y$ResizeIcon��H���/Q�7!RootSWIsحH���)LQ'�MenuBlock|�H����x�3WindowLocation<�H���R�\$�3Extend�H����1P'�nestingflags��H���il
(�paletteblock��H����q\$CloseWindow��H����%o*�LoadTemplateDATA�Wimp
# This is not an error - this page is accessed from the SWIs manual
#Parent !Root
#Prefix Wimp_
#Include swis

Related topics :
#Indent 4
#include topics
DATAyWimp_BaseOfSprites  (&400EA)
#Parent Wimp_
<=	R0 =	pointer to ROM sprites area
	R1 =	pointer to RMA sprites area

This SWI gives you the two areas that make up the Wimp sprite pool. Note that the RMA area may move around (when sprites are added) and that Windowmanagers => 3.5 actually use a dynamic area instead of the RMA.

You can use these addresses with <OS_SpriteOp=>OS:OS_SpriteOp>, but you should always use <Wimp_SpriteOp>.

The only real use for this SWI is for saving the ROM sprites to a file :

#Wrap off; fCode
  SYS "Wimp_BaseOfSprites" TO ROMBase%,RMABase%
  SYS "OS_SpriteOp",12,ROMBase%,"filename"
#f; wrap
DATAWimp_BlockCopy  (&400EB)
#Parent Wimp_
=>	R0 =	window handle
	R1 =	source		minx (incl)
	R2 =	 		miny (incl)
	R3 =	 		maxx (excl)
	R4 =	 		maxy (excl)
	R5 =	destination	minx (incl)
	R6 =	 		miny (incl)

This SWI copies as much as possible of source-rectangle, to given dest. The rest is invalidated. This call cannot be made from inside a <redraw=>Wimp_RedrawWindow>/<update=>Wimp_UpdateWindow> loop.

Note that ECF fills and tiling patterns can get out of step with this call (for an example watch the taskmanager in a 2 colour mode).
DATAFCaret height and flags
Bits	Meaning
#Line
0-15	Height of caret in OS units.
16-23	Colour (if bit 26 is set)
24	1 => Use VDU5 type caret.
	0 => Use anti-aliased caret.
25	1 => Caret is invisible.
26	1 => Use bits 16-23 for colour.
	0 => Use wimp colour 11.
27	1 => 16-23 is untranslated col.
	0 => 16-23 is wimp colour.DATA�Wimp_ClaimFreeMemory  (&400EE)
#Parent Wimp_
=>	R0 =	1 to claim, 0 to release
	R1 =	amount required

<=	R0 corrupt
	R1 =	amount available
	R2 =	pointer to start address, or 0 if not enough

This call is analogous to <OS_ClaimScreenMemory=>OS:OS_ClaimScreenMemory>. It claims all the memory in the free-pool. The memory must be accessed in SVC-mode, and <Wimp_Poll> should not be called while memory is reserved.
DATAWimp_CloseDown  (&400DD)
#Parent Wimp_
=>	R0 =	Taskhadle returned by <Wimp_Initialise>
	R1 =	"TASK" (&4B534154)
<=	R0 corrupt

This must be called immediately before the task terminates by calling <OS_Exit=>OS:OS_Exit>. If it is not, then the task has a last chance to trap its shutdown by means of the <WimpCloseDown service=>OS:service_53> (which will also be called if the task exits normally).

Task handle and magic word are only required if closing a task which is not presently paged in (eg a module).
DATA�Wimp_CloseTemplate  (&400DA)
#Parent Wimp_
<=	R0 corrupt

This call closes the currently open template file, previously opened by <Wimp_OpenTemplate>.DATA�Wimp_CommandWindow  (&400EF)
#Parent Wimp_
=>	R0 =	operation
<=	R0 corrupt

#Tab
Operations
 -1	Command window is closed whether it is was used or not.
  0	Same as -1, but if output, do a "Press SPACE or click mouse to continue"
  1	Command window is set to 'active'
 >1	Pointer to title. Command window is set to 'pending', and next time VDU4 output is generated, the window will open.

This SWI opens a textwindow in which VDU4-type output can be displayed.

When the Wimp starts a task, it does a
{fCode}  SYS "Wimp_CommandWindow","program name"{f}
When <Wimp_Initialise> is reached, it does
{fCode}  SYS "Wimp_CommandWindow",-1{f}DATAWimp_CreateIcon  (&400C2)
#Parent Wimp_
=>	R0 =	if window is \< -3 : icon number, or <priority=>.priorities>
	R1 =	Pointer to block :
		0..3	Window handle, or <iconbar location=>.position>
		4..31	<Icon block=>Wimp_iconblock>

<=	R0 =	icon handle (unique within window)

This SWI adds a new icon to a window.
#
#Subpage position
Iconbar positions
Value	Meaning
#Line
-1	Right side of icon bar
-2	Left side of icon bar
-3	Left of icon R0
-4	Right of icon R0
-5	Left high priority
-6	Left low priority
-7	Right low priority
-8	Right high priority

The <priorities=>.priorities> are held in R0, and high priority icons will be shown closer to the edges.
#
#Subpage priorities
Example priorities
Application		Value
#Line
Task Manager		&60000000
!Help			&40000000
Palette Utility		&20000000
Applications		0

ADFS hard discs		&70000000
ADFS floppy discs	&60000000
'Apps' icon		&50000000
RAM disc		&40000000
Ethernet		&30000000
Econet			&20000000
Other filing systems	&10000000
Printer drivers		&0F000000
Tiny dir		&0E000000
DATAWimp_CreateMenu  (&400D4)
#Parent Wimp_
=>	R1	=	pointer to <menu block=>Wimp_MenuBlock>, or -1 to close menu
	R2,R3	=	x,y coordinate of top-left corner of top-level menu.
<=	R0 corrupt

If R1 is a window handle, then this window will be opened as a menu.
DATA�Wimp_CreateSubMenu  (&400E8)
#Parent Wimp_
=>	R1	=	pointer to <submenu block=>wimp_menublock>, or window handle
	R2,R3	=	x,y coordinate of top-left of submenu.
<=	R0 corrupt

This call is made when a <MenuWarning=>Msg_400C0> message is received. This message is sent by Wimp when pointer is over the submenu arrow of a menu item with the Generate Message bit set in the item flags.
DATAWimp_CreateWindow  (&400C1)
#Parent Wimp_
=>	R1 =	Pointer to <window block=>wimp_windowblock>
<=	R0 =	Window handle

This tells the Wimp what the characteristics of a window are. The Wimp takes a copy of this block, so you could throw it away afterwards.
DATAWimp_DecodeMenu  (&400D5)
#Parent Wimp_
=>	R1 =	pointer to menu data structure
	R2 =	pointer to list of menuselections
	R3 =	pointer to buffer for answer

<=	R0 corrupt
	Buffer pointed to by R3, contains menu item texts, separated by '.'s

This SWI is incredibly useful if you want to decode menus by their contents. This is easier than playing with the selection number if you want an easy life. If you had a menu containing 'Selection', with a sub-option 'Delete' which was chosen you would get the string 'Selection.Delete' back.
DATATWimp_DeleteIcon  (&400C4)
#Parent Wimp_
=>	R1 =	pointer to :
		  0  Window handle, or -2 for iconbar
		  4  Icon handle

This SWI removes the definition of the given icon. If it is the last icon in the windows list, the memory is reallocated, if not it is only marked as deleted.

To update screen, you must call <Wimp_ForceRedraw>.DATA
Wimp_DeleteWindow  (&400C3)
#Parent Wimp_
=>	R1 =	pointer to block :
	 	  0  Window handle

This SWI closes the window if it is open, and then reallocates the memory used in Wimp workspace. (indirected data in Application workspace, is left alone of course).DATA�Wimp_ForceRedraw  (&400D1)
#Parent Wimp_
=>	R0 =	window handle, -2 for iconbar, or -1 for absolute co-ordinates
	R1 =	minimum x
	R2 =	minimum y
	R3 =	maximum x
	R4 =	maximum y
<=	R0 corrupted

This SWI marks area of screen as invalid, and to be redrawn later. If you are doing some kind of animation, or other temporary changes, then you should use <Wimp_UpdateWindow> instead.

Under the nested Wimp it is possible to force a redraw of windows which do not belong to the application. An <extended version=>.nested> is available
#Subpage nested
Wimp_ForceRedraw (nested version)
=>	R0 =	window handle
	R1 =	"TASK" (&4B534154)
	R2 =	3 - update the title bar

This call can be used to update the title bar, rather than any other form.
DATA�Format of a Icon block
#Parent Wimp_CreateIcon
Offset	Contents
#Line
0	Minimum x of icon bounding box
4	Minimum y
8	Maximum x
12	Maximum y
16	<Icon flags=>Wimp_iconflags>
20	12 bytes of <icon data=>Wimp_icondata>DATAHIcon button types
Bits 12-15	Meaning
#Line
0		Ignore everything (except menu).
1		Notify continuously while pointer is over icon.
2		Click (auto-repeat)
3		Click (no auto-repeat)
4		Click selects, move away deselects. Notify of release.
5		Click selects. Doubleclick notifies task.
6		3 + Drag (*16).
7		4 + Drag (*16). Moving away doesn't deselect.
8		5 + Drag (*16).
9		'menu' icon
10		Click (*256), Drag (*16), Doubleclick (*1)
11		Click selects (*1), Drag notifies (*16)
12-13		Reserved.
14		Click causes it to gain caret. Can also Drag
15		Click causes it to gain caret.
DATA�Icon Data
Intepretation varies according to these three bits :
Indirected(8), Sprite(1) and Text(0).
Text plus sprite icons also have a special <justification=>wimp_iconpositions>.

IST	Data
#Line
000	Not used
001	Text String. Max 12 characters long.
010	Spritename.
011	Text and Spritename
100	Not used

101	+0	Pointer to text buffer
	+4	Pointer <validation string=>Wimp_validationstring>
	+8	Buffer length

110	+0	Pointer to sprite or spritename.
	+4	Pointer to sprite control block (+1 for Wimp)
	+8	0 if (+0) is spritepointer, length if namepointer.

111	+0	Pointer to text buffer
	+4	Pointer <validation string=>Wimp_validationstring>, which can contain spritename.
	+8	Buffer lengthDATA�Icon flags
Bits	Meaning when set
#Line
0	Icon contains text.
1	Icon contains a sprite.
2	Icon has a border.
3	Contents centered horizontally.
4	Contents centered vertically.
5	Icon has a filled background.
6	Text is anti-aliased font.
7	Icon needs to be redrawn completely.
8	Icon data is indirected.
9	Text is right-justified.
10	If selected with adjust, don't cancel others.
11	Display sprite at half size.
12-15	<Icon button type=>Wimp_iconbutton>.
16-19	Exclusive Selection Group.
20	Reserved, must be 0
21	Icon is selected by user, and is inverted.
22	Icon is un-selectable (shaded)
23	Icon is deleted.
24-27	Foreground colour	\\ If bit 6 = 1 then this
28-31	Background colour	/  is the fonthandle.DATA�Icon relative positions
The position of an indirected text plus sprite icon is determined by the Horizontal, Vertical and Right justified bits (3,4 and 9):

HVR	Horizontal adjust		Vertical adjust
#Line
000	Text & sprite left justified	Text at bottom, sprite at top
001	Text & sprite right justified	Text at bottom
010	Sprite at left, text > +6 units	Text & sprite centered
011	Text at left, sprite at right	Text & sprite centered
100	Text & sprite centered		Text at bottom, sprite at top
101	Text & sprite centered		Text at top, sprite at bottom
110	Text & sprite centered		Text & sprite centered
111	Text at right, sprite at left	Text & sprite centered

Note: If text and sprite overlaps, text will be on top.DATAyWimp_Initialise  (&400C0)
#Parent Wimp_
=>	R0 =	Last <Wimp version known=>.known> * 100
	R1 =	"TASK" (&4B534154)
	R2 =	pointer to short description for taskmanager
(Version 3.00 or later) :
	R3 =	pointer to list of acceptable <user messages=>Msg_>, terminated by a 0 word
#	 	0 for all messages (very bad plan)
# What they don't know they can't do. :-)
        
<=	R0 =	Current Wimp version * 100
	R1 =	task handle

If a list of user messages is given the task will not be polled in for other messages - swapping the memory associated with tasks is time consuming, so not having to do this for a message that the task will only ignore gives a large speedup. The task can alter this list if necessary with <Wimp_AddMessages> and <Wimp_RemoveMessages>. Before the program terminates, it should call <Wimp_CloseDown>.
#subpage known
Known Wimp version
Value	Meaning
#Line
200	RISC OS 2 WindowManager
	No use of pollwords, indirected menu titles, menu help, validation strings R, K and P, only <Wimp_ReadSysInfo> 0 supported, sprites in icons do not use colour translations, messages may not be 'filtered' with <Wimp_AddMessages>, etc
300	RISC OS 3.00 WindowManager
	Message 'filtering' is broken, <Wimp_ReadSysInfo> 1 to 7 supported
310	RISC OS 3.10 WindowManager
	Message 'filtering' fixed. No use of <Wimp_TextOp>, <Wimp_SetWatchdogState>, <Wimp_ResizeIcon>.
350	RISC OS 3.5-7 WindowManager
	<Wimp_ReadSysInfo> 8 to 10 supported, <Wimp_ReportError> may have extra buttons
380	Softloadable nested WindowManager
	Nestable windows added, <validation string C=>Wimp_validationstring.C> added, h option in <validation string L=>Wimp_validationstring.L> implemented, 'partial' full size windows implemented, windows may now be opened or forceably redrawn by other tasks

Within this list it is assumed that the features not present in higher versions of the WindowManager are also not present in lower versions.
DATA�Wimp_OpenTemplate  (&400D9)
#Parent Wimp_
=>	R1 =	pathname of template file to open
<=	R0 corrupt

This call opens the said template file.
Now you can do repeated calls to <Wimp_LoadTemplate>, and finally <Wimp_CloseTemplate>.DATA�Wimp_OpenWindow  (&400C5)
#Parent Wimp_
=>	R1 =	Pointer to block :
	 	   0	Window handle
	 	   4	Visible area minimum x
	 	   8	Visible area minimum y
	 	  12	Visible area maximum x
	 	  16	Visible area maximum y
	 	  20	Scroll x offset
	 	  24	Scroll y offset
	 	  28	Handle to open window behind
	 	 	(-1=top, -2=bottom, -3=hide/iconise)
<=	block at R1 updated to indicate new location. This is now an official effect.

#Tab
This call updates the list of active windows. It is used
  1)	When you open a window for the first time, and
  2)	When the window moves, scrolls or resizes.

The Wimp will issue redraw messages to you, if necessary. Under the nested Wimp, its use is slightly <different=>.nested>.

#tab
Note:	Prior to the nested Wimp you could not open windows belonging to other tasks. You were (and still are) able to send other tasks <open window requests=>Wimp_Poll2>.
#subpage nested
Wimp_OpenWindow (nested version)
=>	R1 =	pointer to block as <Wimp_OpenWindow>, plus
	 	  32	Window flags (if b0 of nesting flags set)
	 	or 0 to flush all pending opens to the screen
	R2 =	"TASK" (&4B534154)
	R3 =	window handle of parent, or -1 for the top-level
	R4 =	<nesting flags=>Wimp_nestingflags>

This call opens a window within another window. Only present on versions of the Window Manager later than 3.80.

#tab
Note:	Under the nested Wimp you *may* move windows belonging to other clients with either the extended or normal versions of this call.
DATAWimp_PlotIcon  (&400E2)
#Parent Wimp_
=>	R1 =	<icon block=>wimp_iconblock>
<=	R0 corrupt

This SWI can be used to plot a 'virtual' icon during a window redraw/update loop. RISC OS 3 allows its use outside a window redraw/update loop with absolute screen coordinates.
DATAWimp_ProcessKey  (&400DC)
#Parent Wimp_
=>	R0 =	<Character code=>wimp_poll8a>.
<=	R0 corrupt

#Tab
This call has two uses:
  1 :	Pass on keypresses that your program has received from Wimp_Poll <reason 8=>Wimp_poll8>, but doesn't use.
  2 :	Insert keypresses into the wimp buffer.

#Tab
Note 1 :	You should not insert more than one or two characters at a time this way. It seems that the Wimp gets confused after that.

Note 2 :	Characters inserted this way takes precedence over characters in the keyboard buffer.
DATAWimp_RedrawWindow  (&400C8)
#Parent Wimp_
=>	R1 =	pointer to block containing window handle
<=	Exits through <Wimp_GetRectangle>

This SWI is called in response to a <RedrawWindow=>Wimp_Poll1> message from Wimp. It must be 1st Wimp call after <Wimp_Poll>.    DATA
Wimp_ReportError  (&400DF)
#Parent Wimp_
=>	R0 =	pointer to standard <SWI errorblock=>OS:swi_errorblock>
	R1 =	<flags=>wimp_reporterror0>
	R2 =	pointer to application name (or title if bit 4 set), or 0 for simply 'Error'
	R3 =	sprite name (if bit 8 set)
	R4 =	sprite <block=>OS:OS_SpriteOp_area> (if bit 8 set)
	R5 =	pointer to extra buttons string (if bit 8 set), comma seperated

<=	R1 =	0 if nothing selected, 1 if OK selected and 2 if Cancel, 3-5 if extra buttons
	 	Return gives default, Escape the alternate
	R0 corrupt
        
This SWI opens a standard, non-multitasking, errorbox on the screen. Avoid, if possible. It is boring and, as stated above, non-multitasking. However, the RO3.5 extensions make the use of error boxes much more appealing to the programmer.DATAFlags for Wimp_ReportError
Bit	Meaning when set
#Line
0	'OK' box
1	'Cancel' box
2	Highlight Cancel (or OK if no Cancel box)
3	Don't do 'Press space or click mouse to continue'
4	Don't prefix title with 'Error from '
5	Return immediately with R1=0 and box open
6	Simulate iconclick in box according to bits 0+1
7	Don't beep
8	Use categories
9-11	<Category=>.Category>
12-31	Reserved. Must be 0
#subpage Category
Wimp_ReportError categories
\#	Meaning
#Line
1	Informational.
2	Warning.
3	Program (ie non-desktop) message (stop).
4	Question; usually used with the button string.
5	User icon 1 (ie undefined)
6	User icon 2 (ie undefined)
7	Program again (do not use)

These define the type of error under RO3.5 and display the type of the error. Bit 8 must be set.
DATAAWimp_SlotSize  (&400EC)
#Parent Wimp_
=>	R0 =	new size of current slot, or -1 to read
	R1 =	new size of next slot, or -1 to read

<=	R0 =	size of current slot
	R1 =	size of next slot
	R2 =	size of free pool
	R4 corrupted

This SWI reads or sets the amount of memory allocated to the current, or next application.
DATAYWimp_SpriteOp  (&400E9)
#Parent Wimp_
=>	R0 =	<reason code=>OS:OS_SpriteOp_Reason> (0..&FF)
	R1	unused
	R2 =	pointer to sprite name
	R3..	as for OS_SpriteOp

<=	R0 corrupt
	others as for OS_SpriteOp

This call is mapped to <OS_SpriteOp=>OS:OS_SpriteOp>. &100 is added to reason code in R0, and R1 is set to the Wimp sprite-area pointer.
DATA�Wimp_StartTask  (&400DE)
#Parent Wimp_
=>	R0 =	Pointer to *command
<=	R0 =	task handle of child, or 0 if it has exited

This SWI creates a new task, and executes the given *command. The SWI returns to you when new task exits, or calls <Wimp_Poll>.

Note that you can only call this SWI from USR mode, and only if you are a 'live' task ({/}i.e.{/} gained control from <Wimp_Initialise> or Wimp_Poll.
DATA�Wimp_TextColour  (&400F0)
#Parent Wimp_
=>	R0 :	bits 0-3 Wimp colour
	 	bit  7	0 for foreground,
	 	 	1 for background
<=	R0 corrupt

This SWI applies only to VDU4 text.DATAPWimp_TransferBlock  (&400F1)
#Parent Wimp_
=>	R0 =	handle of source task
	R1 =	pointer to source data
	R2 =	handle of destination task
	R3 =	pointer to destination buffer
	R4 =	length of buffer
<=	R0 corrupt

This SWI is used to transfer a block of data from one task to another. Addresses and bufferlength are all byte-aligned.DATA�Wimp_UpdateWindow  (&400C9)
#Parent Wimp_
=>	R1 =	Block :
	 	  0	Window handle
	 	  4	Work area rectangle	minx (incl)
	 	  8	 			miny (incl)
	 	  12	 			maxx (excl)
	 	  16	 			maxy (excl)

<=	Exits through <Wimp_GetRectangle>

#Tab
This SWI is similar to <Wimp_RedrawWindow>.
Differences :
  �	Not all of window has to be updated.
  �	Rectangles are not cleared by Wimp.
  �	Can be called at any time, not just in response to RedrawWindow message.
  �	NOTE: This SWI does not remove rectangles from Wimp_RedrawWindows list of invalid rectangles. If the area is already invalid, then Wimp will send you redraw messages, even if you have updated the area.
DATAQValidation Strings
#Prefix .
Validation string can contain the following commands :
(Commands can be separated by ";")

#Indent 2
<A>	Allowable characters
<C>	Set icon colours (Window Manager 3.80 onwards)
<D>	Mask typed characters
<F>	Set font colours
<K>	Assign functionality to specific keys
<L>	Text in icon will be formatted (split)
<P>	Sets pointer shape and active point
<R>	Border commands
<S>	Spritename
#
#Subpage A
Validation string 'A'
Use:	Exclude/accept only certain characters into a writeable icon.

Syntax:	{Fcode:A[char list][~exclusion list]}
	Allow characters in 'char list'.
	Disallow characters in 'exclusion list'

Examples:	A0-9a-z~b	Allows 0..9, a, c..z
	A~X		Allows all chars but X
	A~\\~		Allows all chars but ~
	A~		Allows all chars
#
#Subpage D
Validation string 'D'
Use:	The masking of the contents of icons. Usually used in password icons.

Syntax:	{Fcode:Dchar}
	Displays all typed chars as 'char'
	Special characters must be preceded by a \\

Examples:	{Fcode:D*}	Contents of the icon is displayed as a series of *'s.
		{Fcode:D\-}	Contents displayed as a series of '-'s
#
#Subpage F
Validation string 'F'
Use:	The definition of outline font colours.

Syntax:	{Fcode:Fxy}
	x = Background
	y = Foreground.
	x and y are hexadecimal digits: 0..9,A..F

Notes:	This call uses <Wimp_SetFontColours>.

Examples:	{Fcode:FA3}	sets background to 10 and foreground to 3.
	{Fcode:F07}	sets background to 0 and foreground to 7 (default).
#
#Subpage C
Validation string 'C'
Use:	24-bit colour in normal icons

Syntax:	{Fcode:C[fore][/back]}
	fore = foreground colour in form BBGGRR
	back = background colour in form BBGGRR

Notes:	This call uses is only available with WindowManager after 3.80.

Examples:	{Fcode:C008000/0080FF}	mid green foreground, orange background
	{Fcode:CFF00FF}		magenta foreground, background as specified in flags word
	{Fcode:C/FF00FF}	foreground as specified in the flags word, yellow background
#
#Subpage K
Validation string 'K'
Use:	Assigns functionality to specific keys.

Syntax:	{Fcode:Koptions}

Options:	R	Return moves caret to next writable icon. (Except for last.)
	A	Up/Down arrow moves to prev/next writable
	T	Tab moves to next, shift-Tab to previous
	D	Deleting will also report the keypress
	N	Task will be notified of all keypresses in icon

Examples:	{Fcode:Ktarn}
		{Fcode}Knd{f}
#
#Subpage L
Validation string 'L'
Use:	Formatting text to fit the icon as best as possible.

Syntax:	{Fcode:L[h]}
	h is the vertical spacing between lines of text in OS units. If omitted, 40 units is used (a system font character is 32 OS units high).

Notes:	This option can only be used with icons which are horizontally and vertically centred, and do not contain an anti-aliased font. The icon must not be writeable, since the caret would not be positioned correctly inside it.

	The height will only take effect on Window Managers after 3.80.

Examples:	{Fcode:L40}
#
#Subpage P
Validation string 'P'
Use:	The changing of the pointer shape and active point.

Syntax:	{Fcode:Pspritename[,x,y]}
	spritename is a sprite in the Wimp sprite pool.
	x and y are the new active points for the pointer.

Examples:	{Fcode:Pptr_write,4,4}	Pointer for writable icons.
		{Fcode:Pptr_menu,6,5}	Pointer for pop-up menu icons.
#
#Subpage R
Validation string 'R'
Use:	Three dimensional borders for icons.

Syntax:	{Fcode:Rtype[,pushcolour]}
	pushcolour is used for when the icon is in a selected state for types 5 and 6.
Types:	1	slab out
	2	slab in
	3	ridge
	4	channel
	5	action button
	6	default action
	7	writable

Examples:	{Fcode:R5,3}	Action button which sinks down to colour 3 (Acorn approved type)
 		{Fcode:R4}	Acorn recommended border type.
#
#Subpage S
Validation string 'S'
Use:	Including sprites in indirected icons

Syntax:	{Fcode:Sspritename[,<selected\>]}
	selected is used for when the icon is in a selected state.

Examples:	{Fcode}	Sswitcher
		Soptoff,opton{F}
DATA"Wimp_WhichIcon  (&400D6)
#Parent Wimp_
=>	R0 =	Window handle
	R1 =	Block to contain icon handles
	R2 =	Bit mask
	R3 =	Bit settings to match
<=	R0 corrupt

All icons with
#Wrap Off
  (icon flags AND R2) = (R3 AND R2)
#Wrap On
are added to the list in R1.
The list is terminated by -1DATA�Format of a window block
#Parent Wimp_CreateWindow
#Wrap off
Offset	Contents
#Line
0	Visible area minimum x
4	Visible area minimum y
8	Visible area maximum x
12	Visible area maximum y
16	Scroll x offset
20	Scroll y offset
24	<Handle to open window behind=>wimp_windowlocation>
28	<Window flags=>wimp_windowflags>			Normal values
32	Title foreground, and frame colour			7 Black
	(&FF means no frame - and no title or scrollbars when not using nested Wimp)
33	Title background					2 Grey
34	Work area foreground
35	Work area background (&FF means Wimp won't clear)
36	Scrollbar outer colour					3 Mid grey
37	Scrollbar inner colour					1 Light grey
38	Title background when input focus			12 Cream
39	0
40	Work area minimum x
44	Work area minimum y
48	Work area maximum x
52	Work area maximum y
56	Title bar <icon flags=>wimp_iconflags>
60	<Workarea 'button' flags=>wimp_workareabuttonflags>
64	Sprite area control block pointer (+1 for wimp)
68	Minimum width   (NB two bytes)
70	Minimum height  (NB two bytes)
72	<Title data=>Wimp_icondata>
84	Number of icons in initial definition (0 or more)
88	0 or more <icon blocks=>wimp_iconblock>, 32 bytes each
DATA�Window flags
Bits 	Meaning when set
#Line
0	Old - Has title bar
1	Window is moveable (draggable).
2	Old - Vertical scroll bar
3	Old - Horizontal scroll bar
4	Window can be drawn completely by Wimp.
5	Window is a pane.
6	Window can be opened/dragged outside screen.
7	Old - Has no quit or back boxes
8	Return Scroll Request with autorepeat.
9	Return Scroll Request without autorepeat.
10	Treat colours given as GCOL numbers => 0..254
11	Don't allow any window below this one.
12	Trap keypresses.
13  +	Force window to stay on screen
14  +	Ignore right-extent when dragging size-box
15  +	Ignore bottom-extent when dragging size-box
16	Window is open.
17	Window is fully visible.
18	Window has been toggled to full size.
19	Open Window Request, is caused by Toggle Size.
20	Window has the input focus.
21  +	Force window to screen on next <Wimp_OpenWindow>
22  *	Window is <partially full size=>.partial>, not covering iconbar (nested Wimp only)
23  *	Window is allowed to be part of the furniture (nested Wimp only)
24	Window has Back icon
25	Close icon
26	Title Bar
27	Toggle size icon
28	Vertical scrollbar
29	Adjust Size icon
30	Horizontal Scrollbar
31	1 for using new format, 0 for old

+ Flag is only present in WindowManager 3.00 and later
* Flag is only present in WindowManager 3.80 and later
#subpage partial
Partial full size flag
The partial full size flag is used when the user shift clicks on the toggle icon, leaving the iconbar visible. When an <OpenWindow request=>Wimp_Poll2> window requst is received a group of bits are set if bit 19 is set :

b18	b21	b22	Meaning
#Line
0	1	0	Window is about to become full size
1	0	0	Window is about to shrink from full size
0	1	1	Window is about to become partial full size
0	0	0	Window is about to shrink from partial full size
DATA�Window Button types
#Wrap Off
Bits 12-15	Meaning
#Line
0		Ignore all clicks
1		Notify task continually, while pointer over workarea
2		Click (auto-repeat)
3		Click (no auto-repeat)
4		Release over workarea notifies task
5		Double click
6		3 + drag.
7		4 + drag. These Return button state * 16
8		5 + drag.
9		as 3
10		Click (*256), Drag (*16), Double click (*1)
11		Click (*1), Drag (*16)
12-14		Reserved
15		Mouse click causes window to gain caret.DATAWimp_AddMessages  (&400F6)
#Parent Wimp_
=>	R0 =	Pointer to array of <message codes=>Msg_> (terminated with 0 word)

Extends the set of user messages that the task gets. The inital set is given by R3 in <Wimp_Initialise>. See also <Wimp_RemoveMessages>.
DATA�Wimp_RegisterFilter  (&400F5)
Used by the Filter Manager to communicate with the Wimp

Do not use. Use the <FilterManager=>Filter_> SWIs instead.
DATA�Wimp_RemoveMessages  (&400F7)
#Parent Wimp_
=>	R0 =	Pointer to array of <message codes=>Msg_> (terminated with 0 word)

Removes the messages in the array from the set of user messages that the task gets.

See also <Wimp_AddMessages>.
DATAuWimp_TextOp  (&400F9) (3.5)
#Parent Wimp_
=>	R0 =	reason code
	 	 0	<set text colours=>.0>
	 	 1	<calculate width of string=>.1>
	 	 2	<plot text=>.2>
other registers depend on R0

Operations on text in the current desktop font. (Only for RISC OS 3.5 and later)

See also: <Wimp_ReadSysInfo> with R0=8
#
#Subpage 0
Wimp_TextOp 0 (&400F9)
=>	R0 =	0
	R1 =	foreground colour
	R2 =	background colour

Sets the text colours in the form &BBGGRR00.
#
#Subpage 1
Wimp_TextOp 1 (&400F9)
=>	R0 =	1
	R1 =	Pointer to string
	R2 =	Number of characters to scan, or 0 for whole string

<=	R0 =	String width in OS units

Calculates the width of a (sub)string, if plotted in the current desktop font. Desktop font can be outline font or old BBC-type font.
#
#Subpage 2
Wimp_TextOp 2 (&400F9)
=>	R0 =	2 + flags:
	 	 	Bit	Meaning
	 	 	30	Vertically justify, so baseline of characters is at same height as when using system font
	 	 	31	Right-justify 
	R1 =	Pointer to string
	R2 =	-1 (?)
	R3 =	-1 (?)
	R4 =	X coordinate
	R5 =	Y coordinate

Plots a string in the current desktop font. Prior to plotting, the font colours are set (with <Wimp_SetColour>).DATA�Wimp_DragBox  (&400D0)
#Parent Wimp_
=>	R1 =	pointer to <block=>.block>, or -1 to cancel drag
<=	R0 corrupt

This SWI initiates a drag. A drag can span several calls to <Wimp_Poll>, so the task must remember what is being dragged and why.

Terminated drag is reported by <Wimp message 7=>Wimp_Poll7>.
#
#Subpage block
Block describing drag
 0	Window handle (for dragtypes 1-4 only)
 4	<Dragtype=>.dragtype>
 8	Min x of initial dragbox
 12	Min y
 16	Max x
 20	Max y

For types 5-11 only :

 24	Min x of parentbox
 28	Min y
 32	Max x
 36	Max y

For types 8-11 only :

 40	R12 value for userroutines
 44	Address of drawbox routine
 48	Address of removebox routine
 52	Address of movebox routine (or \<0 if none - move is remove followed by draw)
#
#Subpage dragtype
Dragtypes
 1	Drag window position
 2	Drag window size
 3	Drag horizontal scroll
 4	Drag vertical scroll
 5	Drag fixed size box
 6	Drag rubberbox
 7	Drag point
 8	Drag fixed size userbox
 9	Drag rubber userbox
 10	As 8, but don't cancel when buttons are released
 11	As 9, but don't cancel when buttons are released
 12	Drag horizontal and vertical scrollbars

Dragtype 1 is useful for dragging windows with no titlebar.
DIR$��<SG���id��CaretPositionLTG���Kg��CIconState�UH������MenuState,XH�����P'PointerInfo4ZE���
!�pointerinfo0�ZE���C�cpointerinfo1 \H����
��WindowInfo�_H���O���WindowOutlinexaF���w�*ywindowoutline0�aH����lq*nWindowStatedeH���EO'�RectangledgH�����[!rectangle_blockDATAWimp_GetCaretPosition  (&400D3)
#Parent Wimp_
=>	R1 =	pointer to block

<=	R0 corrupt
	block contains :
	  0	window handle (-1 if off)
	  4	icon handle, or -1
	  8	x offset
	  12	y offset
	  16	<height + flags=>wimp_carethf>, or -1
	  20	index into string, or -1DATACWimp_GetIconState  (&400CE)
#Parent Wimp_
#Wrap Off
=>	R1 =	pointer to block :
	 	  0  Window handle
	 	  4  Icon handle

<=	R0 corrupt
	On exit the block will also contain :
	  8  32-byte <icon block=>wimp_iconblock>.
#Wrap On

If you want to search for an icon with particular flag settings, use <Wimp_WhichIcon>.DATA�Wimp_GetMenuState  (&400F4)
#Parent Wimp_
#Wrap Off
=>	R0 =	0	to return the current menu tree state
	 	1	report tree leading up to, but not including, a window/icon pair
	R1 =	buffer for result.
	R2 =	window handle of menu, if R0 = 1
	R3 =	icon handle of entry in menu, if R0 = 1

<=	R0 =	corrupted
	R1 =	filled buffer
#Wrap

If there are no errors the buffer is filled with a list of numbers in, same as the one you get after a <menu selection=>wimp_poll9>.

This list returned will be null, ie. buffer+0 = -1, if;

 if R0 = 1 and the Window/icon in R2/R3 is not in the tree, or
 if R0 = 0 and the menu is owned by a different application, or has been closed
DATAWimp_GetPointerInfo  (&400CF)
#Parent Wimp_
=>	R1 =	pointer to block
<=	R0 corrupted
	Block contains :
	  0	Mouse x
	  4	Mouse y
	  8	<Button state=>wimp_getpointerinfo0>
	  12	Window handle (-1 for backgr, -2 for iconbar)
	  16	<Icon handle=>wimp_getpointerinfo1>
	  
This would appear to return not the current mouse state but its state when the last <Wimp_Poll> was executed. This means that it is perfectly safe to use it after a long menu click delay to recreate the menu or as a means of dragging boxes.
DATA�Button state
Bit	Meaning when set
#Line
0	Right button pressed
1	Middle button pressed
2	Left button pressed

3-31 are reservedDATAcIcon handle
If positive, then it really is an icon handle.
If negative, it means :
 -1	Work area
 -2	Back icon
 -3	Close icon
 -4	Title bar
 -5	Toggle size icon
 -6	Scroll up arrow
 -7	Vertical scrollbar
 -8	Scroll down arrow
 -9	Adjust size icon
 -10	Scroll left arrow
 -11	Horizontal scrollbar
 -12	Scroll right arrow
 -13	The outer window frameDATA�Wimp_GetWindowInfo  (&400CC)
#Parent Wimp_
=>	R1 =	pointer to block containing window handle
<=	block contains
	  0	Window handle
	  4..	<Window block=>wimp_windowblock>

This SWI returns complete details of the given windows state, including any icons created after the window itself. If bit 0 of R1 is set, then the icons are *not* returned.

Under the nested window manager, the form is slightly <different=>.nested>.
#Subpage nested
Wimp_GetWindowInfo (nested version)
=>	R1 =	pointer to block containing window handle
<=	block in R1 contains :
	  0	Window handle
	  4..	<Window block=>wimp_windowblock>
	R2 =	"TASK" (&4B534154)
	R3 =	window handle of parent, or -1 for the top-level
	R4 =	<nesting flags=>.flags>
	
This call reads information about the window in the same way as the original, but also returns the nesting information used in <Wimp_OpenWindow>. Only present on versions of the Window Manager later than 3.80.
DATA�Wimp_GetWindowOutline  (&400E0)
#Parent Wimp_
=>	R1 = block containing window handle
<=	R0 corrupt
	Block at R1 <updated=>wimp_getwindowoutline0>

This SWI returns the coordinates of a rectangle which completely covers the window, borders and all.

Under the nested Wimp, this call will now work if the window has not been opened. See <Wimp_ForceRedraw> for details of how to redraw the titlebar under the nested Wimp.
DATAyBlock :
#Wrap Off
0	Window handle
4	Bounding box	minx (incl)
8	 		miny (incl)
12	 		maxx (excl)
16	 		maxy (excl)DATAnWimp_GetWindowState  (&400CB)
#Parent Wimp_
=>	R1 =	pointer to block which contains window handle.

<=	Block in R1 contains :
	  0	Window Handle (or -2 for icon bar)
	  4	Visible area minimum x
	  8	Visible area minimum y
	  12	Visible area maximum x
	  16	Visible area maximum y
	  20	Scroll x offset
	  24	Scroll y offset
	  28	Handle to open window behind (-1=top,-2=bottom)
	  32	<Window flags=>wimp_windowflags>

This call reads a windows visible state. The <nested version=>.nested> can be used to read the windows parent.
#subpage nested
Wimp_GetWindowState (nested version)
=>	R1 =	pointer to block containing window handle
	R2 =	"TASK" (&4B534154)
<=	R3 =	parent window handle, or -1 if top level
	R4 =	<nesting flags=>Wimp_nestingflags>

This version of the call returns not only the updated block but information about the window within which it is embedded.
DATA�Wimp_GetRectangle  (&400CA)
#Parent Wimp_
=>	R1 =	pointer to block containing window handle
<=	R0 =	0 if no more
	Block at R1 is <updated=>.block>

This SWI returns info for the next rectangle to be redrawn. The graphics window is set to clip to the rectangle.
#
#Subpage block
Rectangle to be redrawn
0	Window handle
4	Visible area	minx (incl)
8	 		miny (incl)
12	 		maxx (excl)
16	 		maxy (excl)
20	Scrollx
24	Scrolly
28	Redraw rect	minx (incl)
32	 		miny (incl)
36	 		maxx (excl)
40	 		maxy (excl)
DATARectangle to be redrawn
#Parent Wimp_GetRectangle
Offset	Contents
#Line
0	Window handle
4	Visible area	minx (incl)
8	 		miny (incl)
12	 		maxx (excl)
16	 		maxy (excl)
20	Scrollx
24	Scrolly
28	Redraw rect	minx (incl)
32	 		miny (incl)
36	 		maxx (excl)
40	 		maxy (excl)
DIR$tt�iG���_y���CaretPosition�kG���Qnu�ColourplH����Q'�ExtentnH�����T'FontColoursoG��������IconState�pH���q�u"Mode�qH���H�]$PPointerShapeDsH�����R'}Palette�tG�����(�WatchdogState�uG���o���ColourMappingDATA�Wimp_SetCaretPosition  (&400D2)
#Parent Wimp_
=>	R0 =	window handle (-1 to turn off)
	R1 =	icon handle, or -1 for window area
	R2 =	x offset
	R3 =	y offset
	R4 =	<height + flags=>wimp_carethf>, or -1
	R5 =	index into string, or -1

This SWI moves caret to a new position.
If the caret is moved to a new window, a <LoseCaret=>Wimp_Poll11> message is sent to the owner of the old window, and a <GainCaret=>Wimp_Poll12> message is sent to the owner of the new one.DATA�Wimp_SetColour  (&400E6)
#Parent Wimp_
=>	R0 :	bits	0-3 Wimp colour
	 	bits	4-6 GCOL action
	 	bit	7	0 for foreground,
	 	 	 	1 for background
<=	R0 corrupt
DATA�Wimp_SetExtent  (&400D7)
#Parent Wimp_
=>	R0 =	window handle
	R1 =	pointer to block
	 	+0	new workarea min x
	 	+4	new workarea min y
	 	+8	new workarea max x
	 	+12	new workarea max y
<=	R0 corrupt

Visible workarea must be wholly within new workarea extent.

On RISC OS 2 workarea extent must correspond to a whole number of pixels, or strange effects may occur. Later Wimps round the values.
DATAWimp_SetFontColours  (&400F3)
#Parent Wimp_
=>	R1 =	font background colour
	R2 =	font foreground colour
<=	R0 corrupt

This SWI sets up the anti-aliased font colours, from the two supplied wimp-colours. Font colours are not preserved across Wimp polls.
DATA�Wimp_SetIconState  (&400CD)
#Parent Wimp_
=>	R1 =	pointer to block :
	 	  0	Window handle (-1,-2 for iconbar)
	 	  4	Icon handle
	 	  8	EOR word
	 	  12	Clear word
<=	R0 corrupt

This SWI sets the icon's <flags=>wimp_iconflags> as follows :
  new = (old BIC clear_word) EOR EOR_word

#Tab
 C	E	Effect
#Line
 0	0	Preserve bit
 0	1	Toggle bit
 1	0	Clear bit
 1	1	Set bit

This SWI also causes the icon to be redrawn, even if no bits are changed.DATA"Wimp_SetMode  (&400E3)
#Parent Wimp_
=>	R0 =	<Mode number=>VDU:22a>, or pointer to <Mode Selector=>Wimp_ModeSelect>
<=	R0 corrupt
	Screen updated

This SWI changes the display mode used by Wimp. Palette and mouse-pointer are reset. Screen memory is reallocated, and screen rebuilt.
DATAPWimp_SetPointerShape  (&400D8)
#Parent Wimp_
=>	R0 =	shape number (0 to turn off)
	R1 =	pointer to shape-data, or -1 for no change
	R2 =	width in pixels (multiple of 4)
	R3 =	height in pixels
	R4 =	active point x offset
	R5 =	active point y offset
<=	R0 corrupt

This SWI is obsolete. New programs should use <Wimp_SpriteOp>,36.DATA}Wimp_SetPalette  (&400E4)
#Parent Wimp_
=>	R1 =	pointer to 20-word <palette block=>Wimp_paletteblock>
<=	R0 corrupt

This SWI reprograms the Wimp-palette. In 16-colour modes, the video-palette is also reprogrammed, and in other modes the Wimp's colour lookup table may change.
You must force a redraw of screen. It causes <Service_WimpPalette=>OS:Service_5D> to be issued.
DATA�Wimp_SetWatchdogState  (&400FA) (3.5)
#Parent Wimp_
=>	R0 =	0 to turn Watchdog off, 1 to turn it on
	R1 =	codeword (must be the same for off as for on)

Switches Watchdog protection (Alt-Break) on and off.DATAWimp_SetColourMapping  (&400F8)
#Parent Wimp_
=>	R1 =	pointer to palette to be used for converting Wimp colours to physical colours; or
	 	-1	to use the default Wimp palette
	 	0	to use the palette defined by <Wimp_SetPalette>
	R2 =	pointer to 2-byte array for mapping 1bpp sprites to Wimp colours
	R3 =	pointer to 4-byte array for mapping 2bpp sprites to Wimp colours
	R4 =	pointer to 16-byte array for mapping 4bpp sprites to Wimp colours
	R5, R6, R7 must be 0

This call is used to change the way in which the Wimp maps its own colours to physical colours.

The palette specified in R1 is 16 words long and in &BBGGRRxx format.
DIR$��zH����(!Root~E������1$E���
���10�E����n�"11<�E���Ui�l12��E���Gc�2��E����Z�3��E����W�d4�E���-R�:5X�F����úV�6(�E����6�87`�F����P�8�G���j���r8a\�E�����9�H���>]$@Idle,�G�������Kmaskx�H���>�.%b13DATAWimp_Poll  (&400C7)
#Parent Wimp_
=>	R0 =	<mask=>Wimp_Pollmask>		\<=	R0 = reason code
	R1 =	pointer to 256 byte block	 	R1 = pointer to block of data
	R3 =	pointer to pollword *in RMA*	 
	 	(if R0 bit 22 set)

Reason Codes :
# Gerph> Thanks Nick, this is much nicer
#Indent 2;Tab Align right, Align left, Align right, Align left
0	No Reason				9	<Menu Selection=>Wimp_Poll9>
1	<Redraw Window=>Wimp_Poll1>		10	<Scroll Request=>Wimp_Poll10>
2	<Open Window=>Wimp_Poll2>		11	<Lose Caret=>Wimp_Poll11>
3	<Close Window=>Wimp_Poll3>		12	<Gain Caret=>Wimp_Poll12>
4	<Pointer Leaving Window=>Wimp_Poll4>	13	<Pollword non-zero=>Wimp_Poll13>
5	<Pointer Entering Window=>Wimp_Poll5>	14	- 16 Reserved
6	<Mouse Click=>Wimp_Poll6>		17	<User Message=>wimp_sendmessage2>
7	<User Drag Box=>Wimp_Poll7>		18	<User Message Recorded=>wimp_sendmessage2>
8	<Key Pressed=>Wimp_Poll8>		19	<User Message Acknowledge=>wimp_sendmessage2>
#indent

Priority : Highest: 17-19  Next: 1-6,8,9  Then: the rest  Lowest: 0

Related SWIs : <Wimp_PollIdle>
DATARedraw Window Request (1)
Returned block contains :
   0  Window handle

This indicates that some of the window is out of date, and needs to be redrawn. You should enter an update loop: First call <Wimp_RedrawWindow>, and then call <Wimp_GetRectangle> until done.DATA�Scroll Request (10)
Returned block contains :
  0	Window handle
  4	Visible area minimum x
  8	Visible area minimum y
  12	Visible area maximum x
  16	Visible area maximum y
  20	Scroll x offset
  24	Scroll y offset
  28	Handle to open window behind
  32	Scroll x direction
  36	Scroll y direction

Scroll directions :
  -2	Page Left/Down
  -1	Left/Down
   0
   1	Right/Up
   2	Page Right/Up

You use the scroll directions to update the scroll offsets, and then you do a <Wimp_OpenWindow>.DATA"Lose Caret  (11)
Returned block contains :

  0	Window handle that had focus
  4	icon handle, or -1
  8	x offset
  12	y offset
  16	<height + flags=>wimp_carethf>, or -1
  20	index into string, or -1

This message is sent to window's owner when caret moves away from current window.DATAlGain Caret  (12)
Returned block contains :

  0	Window handle which gains focus
  4	icon handle, or -1
  8	x offset
  12	y offset
  16	<height + flags=>wimp_carethf>, or -1
  20	index into string, or -1

This message is sent to window's owner when caret moves into the mentioned window. It is not generated if caret moves around inside the same old window.DATA�Open Window Request (2)
Returned block contains :
  0	Window handle
  4	Visible area minimum x
  8	----------"--------- y
  12	Visible area maximum x
  16	----------"--------- y
  20	Scroll x offset
  24	Scroll y offset
  28	Handle to open window behind

This message is returned when window size, or scrollbars are altered. You should call <Wimp_OpenWindow> using this block. If you have panes, then you should also use the block to find their new position, and use Wimp_OpenWindow on them too.DATAClose Window Request (3)
Returned block contains :
   0  Window handle

The user has clicked on the close icon of window. If close is OK by you, then call <Wimp_CloseWindow>, using the returned block. If not, notify the user. ('File is altered. Do you want to quit?..')DATAdPointer Leaving Window (4)
Returned block contains :
  0 Window handle

This message is returned when the pointer, for some reason, suddenly finds itself no longer over this window. This can be because you moved it outside, but also because a menu has opened,or something similar
Note : You will not receive this message when the window is deleted.DATA:Pointer Entering Window (5)
Returned block contains :
  0 Window handle

This message is returned when the pointer, for some reason, suddenly finds itself over this window. This can be because you moved it there, but also because a menu is closed, a window deleted, or something similar

Note: If your pointer is over a window, and you delete this and create a new window, all in one go, you will :
 1:	Not get a Pointer_Leaving_Window for the old window.
 2:	Not get a Pointer_Entering_Window for the new one. (Probably because they will have the same handle..)DATA�Mouse Click (6)
#Wrap Off
Returned block contains :

  0	Mouse x		(Screen coord)
  4	Mouse y		(Screen coord)
  8	Buttons
  12	Window handle	(-1=background, -2=iconbar)
  16	Icon handle	(-1=workarea)DATA8User Drag Box (7)
Returned block contains:
  0  Dragbox	min x
  4		min y
  8		max x
  12		max y

This message is returned when all buttons are released to finish a User_Drag operation. The block contains the final pos of the dragbox. To find out where the user dropped the box, call <Wimp_GetPointerInfo>DATA�Key Pressed (8)
Returned block contains :

  0	Window handle with focus
  4	Icon handle, or -1 if none
  8	x-offset of caret	(relative to)
  12	y-offset of caret	(window origin)
  16	Caret height and flags
  20	Index of caret into string (if icon)
  24	<Character code=>wimp_poll8a> ( It's a Word! )

If you're not interested in this keypress, then pass it on with <Wimp_ProcessKey>.DATArCharacter code
#Table 19 12
Key
----------
Backspace
Return
Escape
Home
Delete
Print
F1-F9
Tab
Copy
Left
Right
Down
Up
Page down
Page up
F10-F12
Insert
Alone
----------
&008
&00D
&01B
&01E
&07F
&180
&181-&189
&18A
&18B
&18C
&18D
&18E
&18F
&19E
&19F
&1CA-&1CC
&1CD
+Shift
----------
&008
&00D
&01B
&01E
&07F
&190
&191-&199
&19A
&19B
&19C
&19D
&19E
&19F
&18E
&18F
&1DA-&1DC
&1DD
+Ctrl
----------
&008
&00D
&01B
&01E
&07F
&1A0
&1A1-&1A9
&1AA
&1AB
&1AC
&1AD
&1AE
&1AF
&1BE
&1BF
&1EA-&1EC
&1ED
+Ctrl Shift
-----------
&008
&00D
&01B
&01E
&07F
&1B0
&1B1-&1B9
&1BA
&1BB
&1BC
&1BD
&1BE
&1BF
&1AE
&1AF
&1FA-&1FC
&1FD
#EndTable
DATA�Menu Selection (9)
Returned block contains :
   0	Item in main menu selected.
   4	Item in 1st submenu.
   8	Item in 2nd submenu.
  ++	++
	Terminated by -1

If the user clicks with adjust (call <Wimp_GetPointerInfo> to find out), the menu should remain on screen. To do this, you have to reopen the menu after having responded to selection. This is done by calling <Wimp_CreateMenu> again.DATA@Wimp_PollIdle  (&4000E1)
#Parent Wimp_
=>	R0 =	<mask=>wimp_pollmask>
	R1 =	256-byte block
	R2 =	earliest time for return with Null Reason
	R3 =	pointer to pollword *in RMA*

This SWI does the same as <Wimp_Poll>, except that it will return to you as soon as possible after time stated in R2, with a Null Reason.
DATAKPollMask
Bit	Meaning when bit set :
#Line
0	Don't return Null Reason.
1	Don't return Redraw Window; Queue it.
2-3	0
4	Don't return Pointer Leaving Window.
5	Don't return Pointer Entering Window.
6	Don't return Mouse Click; Queue it.
7	0
8	Don't return Key Pressed; Queue it.
9-10	0
11	Don't return Lose Caret.
12	Don't return Gain Caret.
13	Don't return pollword nonzero
14-16	0
17	Don't return User Message.
18	Don't return User Message Recorded.
19	Don't return User Message Acknowledge.
20-21	0
22	R3 is pointer to pollword
23	Scan pollword at high priority
24	Save FP
25-31	0DATAbPollWord NonZero (13)
#Parent Wimp_Poll
Returned block contains :
  0 Address of poll word
  4 Contents of poll word

This message is returned when the poll word becomes non-zero. If bit 23 of the <Wimp_Poll mask=>Wimp_Pollmask> is set then this may be before messages and redraw requests have been returned (for example <Message_ModeChange=>Msg_400C1>) which allows tasks to make updates to data which affect the contents of windows *before* the windows have been redrawn with out of date contents. With the bit clear this message is received at lower priority than user messages and redraw requests.
DIR$��\�H����V�(�!Root�G���_�Γ�1��G�����Γ2��E���E=�h3DATA�Wimp_SendMessage  (&400E7)
#Parent Wimp_
=>	R0 =	Reason code, see <Wimp_Poll>
	R1 =	Pointer to message block
	R2 =	Handle of destination task
	 	or Window handle
	 	or -2, and R3 = icon handle
	 	or 0 to Broadcast.

<=	R0 corrupt
	R2 =	handle of destination task, if not broadcast
	Message block my_ref (+8) and sender (+4) updated.

Most often, this SWI is used to send <user messages=>wimp_sendmessage1>. Sending an Acknowledge (R0 = 19) to a window allows its parent's task handle to be found.

{*}Note:{*} In versions of the Window Manager prior to 4.00, message blocks in dynamic areas will not have their sender and my_ref fields filled.
DATA�Sending UserMessages (17,18,19)
17	UserMessage			Doesn't expect a reply
18	UserMessage_Recorded		If no-one answers, it returns.
19	<UserMessage_Acknowledge=>Wimp_sendmessage3>  	Tell Wimp we'll handle it.

Format of block :
 0	length of block
 12	your ref (0 for original message, not a reply)
 16	<message code=>Msg_>
 20	..data..

Wimp_SendMessage fills out the following fields:
 4	Handle of sender
 8	my ref (A reply to this message will use this.)DATAReceiving UserMessages (17,18,19)
17	UserMessage			Doesn't expect a reply
18	UserMessage_Recorded		If noone answers, it returns.
19	<UserMessage_Acknowledge=>Wimp_SendMessage3>  	A UM_Recorded returns.

Format of block :
 0	length of block
 4	Handle of sender
 8	my ref
 12	your ref
 16	<message code=>Msg_>
 20	..data..

To acknowledge message, first set your_ref = my_ref, and then either just call Wimp_SendMessage,19 which stops the message from returning, or send any UserMessage back to the sender.
DATAhAcknowledge
This prevents a broadcast message from being passed on, and a UserMessage_Recorded from being returned to the sender.

call <Wimp_SendMessage> with :
your_ref	= 0
R2		= task/window handle
R3		= icon handle if R2 = -2

On exit R2 = task handle.

You can also use this if you only want to find out who owns a window or an icon on the iconbar.DIR$���H���?S'�Palette��H���s+�PixTransX�G�������qsysinfo̧H����P(kSysInfo_Direction8�H���fW(gSysInfo_StateDATA�Wimp_ReadPalette  (&400E5)
#Parent Wimp_
=>	R1 =	pointer to 20-word <palette block=>Wimp_paletteblock>
<=	R0 corrupt
	block contains palette definitions

This SWI returns the current Wimp palette settings, but in the form &B0G0R0LL, where L is the logical colour number used for the Wimp colour 0 to 15 (or %TTGGGGGG in 256 colour modes).

Note that when even when the values are masked to give &B0R0G000 this is not correct for passing to ColourTrans.
DATA�Wimp_ReadPixTrans  (&400ED)
#Parent Wimp_
=>	R0 =	&0xx if sprite in system area
	 	&1xx if sprite in user area, and R2 = name
	 	&2xx if sprite in user area, and R2 = pointer
	R1 =	pointer to <spritearea=>OS:OS_SpriteOp_Area> (0 for system, 1 for wimp)
	R2 =	pointer to sprite name, or <sprite=>OS:OS_SpriteOp_Ptr> itself
	R6 =	Block to receive scale factors
	R7 =	Block to receive translation table (2,4 or 16 bytes long)

<=	R0 corrupt
	Block at R6 contains <scale factors=>OS:OS_scalefactors>
	Block at R7 contains <translation table=>OS:ColourTrans_pixtrans>

This SWI gives info of how the Wimp would plot this icon.

Under RISC OS 2 sprite cannot be 256-colour.
DATAqWimp_ReadSysInfo  (&400F2)
#Parent Wimp_
=>	R0 =	item index
<=	R0 =	item value

#Tab
Currently defined values for R0 :
0	Number of active tasks
 	(Is 0 if completely outside desktop)
1	Wimp mode
2	Sprite suffix
3	<Desktop state=>Wimp_ReadSysInfo_State>
4	<Write direction=>Wimp_ReadSysInfo_Direction>
5	R0 =	Current task handle (0 if none)
 	R1 =	Version of WindowManager expected by task as given in <Wimp_Initialise>
7	Version of WindowManager * 100
8	R0 =	Fonthandle of "desktop font" (0 for system font)
 	R1 =	Fonthandle of "wimpsymbol font"
9	Toolsprites <sprite area=>OS:OS_SpriteOp_Area>
10	Application limit
DATAkWimp Write Directions
#Parent Wimp_ReadSysInfo
Value	Meaning
#Line
0	Left to right
1	Right to left
DATAgWimp States
#Parent Wimp_ReadSysInfo
Value	Meaning
#Line
#Wrap Off
0	Command line
1	In desktop
DATA�Mode Specifier Blocks
Offset	Value
#Line
0	Mode selector flags
	bit	0	= 1
	bits	1-7	= 0 (format specifier)
	bits	8-31	= 0 (reserved)
4	x-resolution (pixels)
8	y-resolution (pixels)
12	pixel depth
	0	= 1 bpp
	1	= 2 bpp
	2	= 4 bpp
	3	= 8 bpp
	4	= 16 bpp
	5	= 24 bpp
16	frame rate (Hz) (-1 = use first match)
20	optional pairs of words
	mode variable index, value
	mode variable index, value
	�etc
	-1 terminator
#line
See also <Mode Specifier Strings=>Wimp_ModeString>
DATAMode Specifier Strings
A mode specifier string can contain the following elements, with space between:
 
Xnnnn	X resolution (nnnn 3-4 digits)
Ynnnn	Y resolution (nnnn 3-4 digits)
Cccc	Colours (ccc=2,16,256,32K,16M)
Gccc	Greys (ccc=16,256)
EXn	X eigenfactor (0-3)
EYn	Y eigenfactor (0-3)
Ffff	Frame rate (fff 2-3 digits)
#line
Examples:
#indent 2
{fCode}MODE X640,Y480,C256{f}
	VGA in 256 colours
{fCode}MODE X800,Y600,C32K{f}
	SVGA in 32768 colours
#indent 0
#line
See also <Mode Specifier Blocks=>Wimp_ModeSelect>.
DATAWimp_ResizeIcon  (&400FC) (3.5)
#Parent Wimp_
=>	R0 =	window handle
	R1 =	icon handle
	R2 =	x0
	R3 =	y0
	R4 =	x1
	R5 =	y1
<=	All registers preserved

This call resizes the given icon in the given window to the new bounding box coordinates as given in registers 2 to 5.
DATA7Wimp
#Parent !Root
#Prefix Wimp_
#Include swis
DATA�Menu block
#Parent Wimp_CreateMenu
Offset	Contents				Normal value
#Line
0	menu title (if 0 string, no title)
12	title foreground and frame colour	7
13	title background colour			2
14	work-area foreground colour		7
15	work-area background colour		0
16	width of menu items			(calculated)
20	height of menu items			44
24	vertical gap between items		0
28	<menu items=>.item> (24 bytes each)

If bit 8 of the flags for the first item is set, then the menutitle is indirected, and the 3 first words are as for an indirected texticon.

If menutitle begins with an "\\", then this menu and all its submenus are "reversed"
#
#Subpage item
Menu item
#wrap off
Offset	Contents
#Line
0	<item flags=>.flags>
4	submenu pointer, or window handle or -1 if nothing
8	<icon flags=>wimp_iconflags> (as for normal icon)
12	12 bytes of <icon data=>wimp_icondata> (as for normal icon)
#
#Subpage flags
Item flags
Bit	Meaning
#Line
0	Tick to left of item
1	Dotted line following item
2	Item is writable
3	Generate <message when submenu=>Msg_400C0>
4	Submenu can be opened even when greyed out
7	This is last item in menu
8	(Only in first menuitem) Menu title is indirected
9-31    Reserved, must be 0
DATA�Window locations
#Parent Wimp_WindowBlock
Value	Meaning
#Line
-1	top of the stack
-2	bottom of the stack, behind all others
-3	iconised - not visible
x	behind the window with handle x
DATA�Wimp_Extend  (&400FB) (3.8)
#Parent Wimp_
=>	R0 =	<reason code=>.reason>
	R1 =	window queried, or -1 for top level
<=	R1 =	window handle, or -1 for none

Returns information about the window stack.

Note: This call is only present for WindowManagers after 3.80.
#Subpage reason
Wimp_Extend reason codes
Reason	Meaning
#Line
0-5	Internal use only
6	Parent window
7	Top child window
8	Bottom child window
9	Sibling immediately below
10	Sibling immediately above
DATA�Nested window flags
#Parent Wimp_OpenWindow
Bit	Meaning
#Line
0	set window flags from block for child window
16-17	<child's left=>.values>
18-19	<child's bottom=>.values>
20-21	<child's right=>.values>
22-23	<child's top=>.values>
24-25	<child's x scroll offset=>.values>
26-27	<child's y scroll offset=>.values>
others	reserved, must be zero

#Tab
Note:	This call is now drawn from Acorn's documentation; it is no longer documented from experimental evidence.

# Example:
# #Indent 2
# A window has a tool bar at the top of the screen, and a status bar at the bottom of the window. The tool bar would use bits 16, 19, 21 and 23, and the status bar would use bits 16, 18, 21, and 22. You might also have the document view as a nested window with bits 16, 18, 21, 23, 24 and 26 set.
# #Indent
Nesting windows and attaching them correctly is not an easy task; an amount of experimentation will be required before you can achieve the desired result.
#Subpage values
Nesting values
Bits	Meaning
#line
00	linked to the work area of the parent
01	linked to the lower bound of the parent (left or bottom)
10	linked to the upper bound of the parent (top or right)
11	reserved
DATA�Palette block
#Parent Wimp_SetPalette
0	Wimp colour 0
4	Wimp colour 1
.
.
60	Wimp colour 15
64	Border colour
68	Pointer colour 0
72	Pointer colour 1
76	Pointer colour 2
 
All entries have format &BBGGRR00
DATAWimp_CloseWindow  (&400C6)
#Parent Wimp_
=>	R1 =	pointer to block :
	 	  0  Window handle

This call removes the window from the list of active windows.

The Wimp will issue any necessary redraw messages. The nested version is slightly <different=>.nested>.
#subpage nested
Wimp_CloseWindow (nested version)
=>	R1 =	pointer to block as <Wimp_CloseWindow>
	R2 =	"TASK" (&4B534154)
	R3 =	window handle of parent

This call closes a window within another window. Only present on versions of the window manager later than 3.82.
DATA�Wimp_LoadTemplate  (&400DB)
#Parent Wimp_
=>	R1 =	pointer to userbuffer for template, or 0 to find required buffersize
	R2 =	pointer to workspace for indirected data.
	R3 =	pointer to end of workspace (+1?)
	R4 =	pointer to 256-byte array for font ref, or -1 for no fonts
	R5 =	pointer to (wildcarded) name to match (3 aligned words)
	R6 =	position to search from, or 0 for the first call

<=	R0 corrupt
	R2 =	pointer to remaining workspace
	R5	is overwritten with actual name
	R6 =	pos of next entry, or 0 if template not found

if R1 was 0, then :
	R1 =	required size for window and icons
	R2 =	required size for indirected data

Note that R5 *must* point to a word aligned 12 byte buffer, which is used as workspace by the call. BASIC programmers converting to C or Assembler should be careful to set R6.

Errors will not be returned if the template is not found. Instead R6 is set to 0.DATAlWimp SWIs
#Parent StrongHelp:!Menu
#Postfix _
#Align Centre;Wrap off;Indent 2
#Table Columns 3
<Wimp=>Wimp_!RootSWIs>
<FilterManager=>Filter_>
<TaskManager>
<TaskWindow>
<DragASprite>
<FilerAction>
<Free>
<ColourPicker>
<DDEUtils>
#EndTable
# <RedrawManager=>Redraw_>
#Indent;Line
#include topics
#Line
#align centre
{/}<Wimp SWIs manual=>about>, v1.04{/}
DATA�
Wimp SWIs manual
#Align Centre
{fh3}Wimp SWIs manual{f}
#Line
#Align Left
This manual is part of a collection comprising the main public domain programming reference. The other manuals in the series are :
#Indent 2
#Postfix :!Root
<OS>		The base operating system stuff
<Wimp>		The desktop part of the operating system
<InetSWIs>	Internet based SWIs
<InetSocket>	Internet socket calls
<MiscSWIs>	Miscellaneous SWIs
<VDU>		VDU commands
<Toolbox>	Toolbox (by Niel Bingham)
#Indent

For comments, suggestions and submissions for these, please mail Justin Fletcher <\<gerph@innocent.com\>=>#URL mailto:gerph@innocent.com> who is currently moderating the collection. The primary location for these manuals will be <http://freenet.barnet.ac.uk/manuals/=>#URL http://freenet.barnet.ac.uk/manuals/>.

<This page=>.hist104> gives history and credits.
#
#Subpage hist100
History for Wimp v1.00
#Align Right
{/}22 Sep 1997{/}
#Align Left
�	First release

<Next history=>.hist101>
#Subpage hist101
History for Wimp v1.01
#Align Right
{/}10 Oct 1997{/}
#Align Left
�	Re-organised the !Root page to try to make a little more logical.
�	Updated 'style' of message entries; should all include parent and use +x\<tab> to indicate the parameter block.

#Tab
<Previous history=>.hist100>	<Next history=>.hist102>
#Subpage hist102
History for Wimp v1.02
#Align Right
{/}15 Nov 1997{/}
#Align Left
�	Updates to minor sections (bug fixes after pre-release to IRC'ers)
�	Device Claim, ClaimEntity and TaskStarted documented (Dave Thomas)

#Tab
<Previous history=>.hist101>	<Next history=>.hist103>
#Subpage hist103
History for Wimp v1.03
#Align Right
{/}07 Jan 1998 - 15 Jan 1998{/}
#Align Left
�	DDEUtils moved here from MiscSWIs; seems more logical to me
�	URI moved to InetSWIs from here; attempting to make things more relevant.
�	Wimp_GetMenuState updated (David McCormack)
�	PlugIn protocol documentation (Dave Thomas; clan newsletter)

<Previous history=>.hist102> <Next history=>.hist104>
#Subpage hist104
History for Wimp v1.04
#Align Right
{/}22 Jan 1998-22 Mar 1998{/}
#Align Left
�	Wimp_SetFontColour and others changed (Nicholas Clark)
�	Plugin protocol 'string_value' and others tidied up.
�	Nested window manager calls updated with documentation from the Acorn site.
�	DDEUtils SWIs finally added (!)
�	Miscellaneous fixes for new calls
�	Updates to DDEUtils (NC), other minor changes
�	Updates to the FilterManager calls for 1.18 of the manager; mostly guesswork, but at least RegisterPostRectFilter works correctly.
�	Update to Wimp_SendMessage regarding dynamic areas
�	SWI numbers added to various calls
�	FilerAction reorganised, example fixed (various)
�	Miscellaneous cross-references and minor re-organisations
�	Gramatical and spelling errors corrected.

<Previous history=>.hist103>
DIR$PP��G���8O��V!Root�H����I�3TaskInfoDATAVTaskWindow
#Parent !Root
#Prefix TaskWindow_
<TaskInfo>

Message calls :
#Indent 3
#Table 4 24
<808C0 TW_Input=>Msg_808c0>
<808C1 TW_Output=>Msg_808c1>
<808C2 TW_Ego=>Msg_808c2>
<808C3 TW_Morio=>Msg_808c3>
<808C4 TW_Morite=>Msg_808c4>
<808C5 TW_NewTask=>Msg_808c5>
<808C6 TW_Suspend=>Msg_808c6>
<808C7 TW_Resume=>Msg_808c7>
#EndTable
DATA�TaskWindow_TaskInfo
#Parent TaskWindow_
=>	R0 =	0 (other reason codes are reserved)
<=	R0 =	0 if not in TaskWindow, otherwise in a TaskWindow.

This SWI is used to check if the program is currently running inside a TaskWindow.DATA�@-� ��XR���� ��!R� �xR �2R �6R��0��@������!��a��h������@ ��8��a�q���!x26DATADevice numbers
#Wrap off
Port	Major device	Minor device
#Line
Parallel port	1	0
Serial port	2	0
Screen palette	3	0
MIDI interface	4	-1	(all ports)
		 	0-3	(port number)
Floppy discs	5	-1	(all floppy discs)
		 	0-3	(drive number)
Sound system	6	0	(whole sound system)
#Wrap
DIR$��D�H����z�O!root��H���"��+ThrowbackSend��H���g��
�ThrowbackStartp�H���k��
oThrowbackEnd��H�����m'�3Prefix��H���
�m'�3SetCLSize��H����m'63SetCL��H���j�m'I3GetCl$�H�����m'�3GetCLSize��H�����m'�3ThrowbackRegister��H���V�m'�3ThrowbackUnRegisterDATAODDEUtils
#Parent !Root
#Prefix DDEUtils_
#Table Columns 2
<Prefix>
<SetCLSize>
<SetCL>
<GetCLSize>
<GetCl>
<ThrowbackRegister>
<ThrowbackUnRegister>
<ThrowbackStart>
<ThrowbackSend>
<ThrowbackEnd>
#EndTable

Throwback protocol :
#Indent 4
#Table 4 24
<42580 ThrowbackStart=>Msg_42580>
<42581 ProcessingFile=>Msg_42581>
<42582 ErrorsIn=>Msg_42582>
<42583 ErrorDetails=>Msg_42583>
<42584 ThrowbackEnd=>Msg_42584>
<42585 InfoForFile=>Msg_42585>
<42586 InfoDetails=>Msg_42586>
#EndTable

#Indent 0
DDE Make Protocol :
#Indent 4
#Table 2 24
<81400 DDE_Flags changed=>Msg_81400>
#EndTable
DATA+DDEUtils_ThrowbackSend  (&42588)
#Parent DDEUtils_
=>	R0 = <type=>.type>
	R2 = filename of file
	R3 = line number in file, for type 1 and 2
	R4 = <seriousness=>.seriousness> for type 1, 0 for type 2, and ignored otherwise
	R5 = pointer to message, for type 1 and 2

This SWI is used to send data from an application to the throwback handler.
#subpage type
DDEUtils_ThrowbackSend type
Type	Meaning
#Line
0	Processing
1	Error
2	Information
#subpage seriousness
DDEUtils_ThrowbackSend seriousness
Type	Meaning
#Line
0	Warning
1	Error
2	Serious Error
DATA�DDEUtils_ThrowbackStart  (&42587)
#Parent DDEUtils_
This SWI is used to start a DDEUtils throwback session.

Use <DDEUtils_ThrowbackSend> to put data in the buffer.
DATAoDDEUtils_ThrowbackEnd  (&42589)
#Parent DDEUtils_
This SWI is used to end a DDEUtils throwback session.DATA�DDEUtils_Prefix  (&42580)
#Parent DDEUtils_
=>	R0 =	pointer to directory name, or 0 to clear
<=	R0 preserved

This SWI is used to set the current directory for this context, relative to the global curent directory.
DATA�DDEUtils_SetCLSize  (&42581)
#Parent DDEUtils_
=>	R0 =	length of command line buffer
<=	R0 corrupt

This SWI is used to set up the size of the command line buffer when <DDEUtils_SetCL> is called.

Note:	There is only one extended command line for the entire machine. This means a potential race condition exists, if two tasks are both using extended command lines. This seems na�ve considering that the DDEUtils module partially implements a per-task current directory.
DATA6DDEUtils_SetCL  (&42582)
#Parent DDEUtils_
=>	R0 =	pointer to zero terminated command line
<=	R0 preserved

This SWI is used to set the command line of the length specified in <DDEUtils_SetCLSize>.

Note:	The command line is actually terminated at the first *control* character. This is very annoying.
DATAIDDEUtils_GetCl  (&42584)
#Parent DDEUtils_
=>	R0 =	pointer to buffer for command line
<=	R0 preserved

This SWI is used to read the command line into a buffer. It also unsets DDEUtils copy of the command line.

Note:	The case of letters used in the name DDEUtils_GetC{*}l{*} is inconsistent will all other DDEUtils SWIs.
DATA�DDEUtils_GetCLSize  (&42583)
#Parent DDEUtils_
<=	R0 =	size of command line buffer, or 0 if none set

This SWI is used to read the size of the command line set by <DDEUtils_SetCLSize>.
DATA�DDEUtils_ThrowbackRegister  (&42585)
#Parent DDEUtils_
=>	R0 =	task handle
<=	R0 preserved

This SWI is used to register the task that handles all throwback requests.
DATA�DDEUtils_ThrowbackUnRegister  (&42586)
#Parent DDEUtils_
=>	R0 =	task handle
<=	R0 preserved

This SWI is used to deregister the task handling all throwback requests.
DATA# This is not an error, it is included from a few files
#
# I'm still working on re-organising this, if you have any ideas please
# let me know !
#Table Columns 3
<Poll codes=>Wimp_Poll>
<User messages=>Msg_>
<Window block=>Wimp_windowblock>
<Window flags=>Wimp_windowflags>
<Menu block=>Wimp_MenuBlock>
<Menu items=>Wimp_MenuBlock.item>
<Menu flags=>Wimp_MenuBlock.flags>

<Icon block=>Wimp_iconblock>
<Icon flags=>Wimp_iconflags>
<Icon buttons=>Wimp_iconbutton>
<Validation strings=>Wimp_validationstring>
#EndTable
00000000  48 45 4c 50 28 00 00 00  fd 00 00 00 ff ff ff ff  |HELP(...........|
00000010  2c 00 00 00 00 fd ff ff  00 00 00 00 2c 02 00 00  |,...........,...|
00000020  00 01 00 00 00 00 00 00  24 00 00 00 44 49 52 24  |........$...DIR$|
00000030  34 02 00 00 34 02 00 00  60 02 00 00 48 fd ff ff  |4...4...`...H...|
00000040  8a b2 80 2b 94 0d 00 00  13 01 00 00 00 00 00 00  |...+............|
00000050  4d 73 67 5f 00 00 00 00  ec 81 01 00 48 fd ff ff  |Msg_........H...|
00000060  c0 de 80 2b 2c 00 00 00  13 01 00 00 00 00 00 00  |...+,...........|
00000070  43 6f 6c 6f 75 72 50 69  63 6b 65 72 5f 00 00 00  |ColourPicker_...|
00000080  e0 82 01 00 48 fd ff ff  03 df 80 2b ac 00 00 00  |....H......+....|
00000090  13 01 00 00 00 00 00 00  44 72 61 67 41 53 70 72  |........DragASpr|
000000a0  69 74 65 5f 00 00 00 00  5c 89 01 00 48 fd ff ff  |ite_....\...H...|
000000b0  fd df 80 2b f4 00 00 00  13 01 00 00 00 00 00 00  |...+............|
000000c0  46 69 6c 65 72 41 63 74  69 6f 6e 5f 00 00 00 00  |FilerAction_....|
000000d0  14 9e 01 00 48 fd ff ff  0e e1 80 2b f0 02 00 00  |....H......+....|
000000e0  13 01 00 00 00 00 00 00  46 69 6c 74 65 72 5f 00  |........Filter_.|
000000f0  54 c1 01 00 48 fd ff ff  70 e4 80 2b 94 00 00 00  |T...H...p..+....|
00000100  13 01 00 00 00 00 00 00  46 72 65 65 5f 00 00 00  |........Free_...|
00000110  d4 ca 01 00 48 fd ff ff  1d e5 80 2b a4 00 00 00  |....H......+....|
00000120  13 01 00 00 00 00 00 00  54 61 73 6b 4d 61 6e 61  |........TaskMana|
00000130  67 65 72 5f 00 00 00 00  44 d2 01 00 48 fd ff ff  |ger_....D...H...|
00000140  2d 5b 86 1a c4 03 00 00  13 00 00 00 00 00 00 00  |-[..............|
00000150  73 77 69 73 00 00 00 00  08 d6 01 00 48 fd ff ff  |swis........H...|
00000160  38 e6 80 2b d0 08 00 00  13 01 00 00 00 00 00 00  |8..+............|
00000170  57 69 6d 70 5f 00 00 00  18 c0 02 00 48 fd ff ff  |Wimp_.......H...|
00000180  83 38 97 2a 6c 01 00 00  03 00 00 00 00 00 00 00  |.8.*l...........|
00000190  21 72 6f 6f 74 00 00 00  84 c1 02 00 48 fd ff ff  |!root.......H...|
000001a0  c2 88 80 2b e8 0a 00 00  03 00 00 00 00 00 00 00  |...+............|
000001b0  61 62 6f 75 74 00 00 00  6c cc 02 00 48 fd ff ff  |about...l...H...|
000001c0  92 f9 80 2b 50 00 00 00  13 01 00 00 00 00 00 00  |...+P...........|
000001d0  54 61 73 6b 57 69 6e 64  6f 77 5f 00 00 cf 02 00  |TaskWindow_.....|
000001e0  47 fc ff ff c9 28 47 d4  84 00 00 00 33 00 00 00  |G....(G.....3...|
000001f0  00 00 00 00 21 50 72 65  00 00 00 00 84 cf 02 00  |....!Pre........|
00000200  47 fd ff ff db ac 9a e9  19 01 00 00 33 00 00 00  |G...........3...|
00000210  00 00 00 00 64 65 76 69  63 65 73 00 a0 d0 02 00  |....devices.....|
00000220  48 fd ff ff 17 fa 80 2b  a4 01 00 00 13 01 00 00  |H......+........|
00000230  00 00 00 00 44 44 45 55  74 69 6c 73 5f 00 00 00  |....DDEUtils_...|
00000240  48 df 02 00 48 fd ff ff  d4 31 86 1a 0e 02 00 00  |H...H....1......|
00000250  33 00 00 00 00 00 00 00  74 6f 70 69 63 73 00 00  |3.......topics..|
00000260  44 49 52 24 94 0d 00 00  94 0d 00 00 f4 0f 00 00  |DIR$............|
00000270  48 fd ff ff 8a f7 d7 08  f1 00 00 00 13 00 00 00  |H...............|
00000280  00 00 00 00 30 00 00 00  e8 10 00 00 48 fd ff ff  |....0.......H...|
00000290  72 8d ef 26 cc 02 00 00  13 00 00 00 00 00 00 00  |r..&............|
000002a0  31 00 00 00 b4 13 00 00  47 fd ff ff 88 64 f8 d6  |1.......G....d..|
000002b0  92 02 00 00 13 00 00 00  00 00 00 00 31 30 00 00  |............10..|
000002c0  48 16 00 00 47 fd ff ff  11 6d f8 d6 8a 01 00 00  |H...G....m......|
000002d0  13 00 00 00 00 00 00 00  31 31 00 00 d4 17 00 00  |........11......|
000002e0  45 fd ff ff f1 05 f1 ff  c2 00 00 00 13 00 00 00  |E...............|
000002f0  00 00 00 00 31 31 5f 66  6c 61 67 73 00 00 00 00  |....11_flags....|
00000300  98 18 00 00 47 fd ff ff  ca 8e f8 d6 e3 00 00 00  |....G...........|
00000310  13 00 00 00 00 00 00 00  31 32 00 00 7c 19 00 00  |........12..|...|
00000320  45 fd ff ff 85 fe f0 ff  99 00 00 00 13 00 00 00  |E...............|
00000330  00 00 00 00 31 32 5f 66  6c 61 67 73 00 00 00 00  |....12_flags....|
00000340  18 1a 00 00 47 fd ff ff  44 a5 f8 d6 73 01 00 00  |....G...D...s...|
00000350  13 00 00 00 00 00 00 00  32 00 00 00 8c 1b 00 00  |........2.......|
00000360  48 fd ff ff 39 55 ef 26  c1 01 00 00 13 00 00 00  |H...9U.&........|
00000370  00 00 00 00 33 00 00 00  50 1d 00 00 47 fd ff ff  |....3...P...G...|
00000380  85 c2 f8 d6 4c 01 00 00  13 00 00 00 00 00 00 00  |....L...........|
00000390  34 00 00 00 9c 1e 00 00  48 fd ff ff b4 18 0c 28  |4.......H......(|
000003a0  a1 01 00 00 13 00 00 00  00 00 00 00 34 30 30 00  |............400.|
000003b0  40 20 00 00 47 fd ff ff  6f a5 f7 d6 44 01 00 00  |@ ..G...o...D...|
000003c0  13 00 00 00 00 00 00 00  34 30 30 34 30 00 00 00  |........40040...|
000003d0  84 21 00 00 48 fd ff ff  63 31 0c 28 a9 02 00 00  |.!..H...c1.(....|
000003e0  13 00 00 00 00 00 00 00  34 30 30 43 30 00 00 00  |........400C0...|
000003f0  30 24 00 00 47 fd ff ff  a1 d1 f7 d6 87 01 00 00  |0$..G...........|
00000400  13 00 00 00 00 00 00 00  34 30 30 43 31 00 00 00  |........400C1...|
00000410  b8 25 00 00 48 fd ff ff  0c 81 df 26 53 01 00 00  |.%..H......&S...|
00000420  13 00 00 00 00 00 00 00  34 30 30 43 32 00 00 00  |........400C2...|
00000430  0c 27 00 00 48 fd ff ff  ea 93 df 26 cb 00 00 00  |.'..H......&....|
00000440  13 00 00 00 00 00 00 00  34 30 30 43 33 00 00 00  |........400C3...|
00000450  d8 27 00 00 48 fd ff ff  22 4c 0c 28 1a 01 00 00  |.'..H..."L.(....|
00000460  13 00 00 00 00 00 00 00  34 30 30 43 34 00 00 00  |........400C4...|
00000470  f4 28 00 00 48 fd ff ff  30 c8 df 26 81 02 00 00  |.(..H...0..&....|
00000480  13 00 00 00 00 00 00 00  34 30 30 43 35 00 00 00  |........400C5...|
00000490  78 2b 00 00 48 fd ff ff  47 0e e0 26 64 01 00 00  |x+..H...G..&d...|
000004a0  13 00 00 00 00 00 00 00  34 30 30 43 36 00 00 00  |........400C6...|
000004b0  dc 2c 00 00 48 fd ff ff  77 fe df 26 15 01 00 00  |.,..H...w..&....|
000004c0  13 00 00 00 00 00 00 00  34 30 30 43 37 00 00 00  |........400C7...|
000004d0  f4 2d 00 00 47 fd ff ff  b3 52 f8 d6 b9 00 00 00  |.-..G....R......|
000004e0  13 00 00 00 00 00 00 00  34 30 30 63 39 00 00 00  |........400c9...|
000004f0  b0 2e 00 00 48 fd ff ff  15 4a 2b 26 07 01 00 00  |....H....J+&....|
00000500  13 00 00 00 00 00 00 00  34 30 31 00 b8 2f 00 00  |........401../..|
00000510  47 fd ff ff 34 67 f9 d6  6b 00 00 00 13 00 00 00  |G...4g..k.......|
00000520  00 00 00 00 34 32 35 38  30 00 00 00 24 30 00 00  |....42580...$0..|
00000530  47 fd ff ff ba 5d f9 d6  46 00 00 00 13 00 00 00  |G....]..F.......|
00000540  00 00 00 00 34 32 35 38  31 00 00 00 6c 30 00 00  |....42581...l0..|
00000550  47 fd ff ff 90 6c f9 d6  3e 00 00 00 13 00 00 00  |G....l..>.......|
00000560  00 00 00 00 34 32 35 38  32 00 00 00 ac 30 00 00  |....42582....0..|
00000570  47 fd ff ff 5a 72 f9 d6  7a 00 00 00 13 00 00 00  |G...Zr..z.......|
00000580  00 00 00 00 34 32 35 38  33 00 00 00 28 31 00 00  |....42583...(1..|
00000590  47 fd ff ff e6 88 f9 d6  7e 00 00 00 13 00 00 00  |G.......~.......|
000005a0  00 00 00 00 34 32 35 38  34 00 00 00 a8 31 00 00  |....42584....1..|
000005b0  47 fd ff ff f2 91 f9 d6  42 00 00 00 13 00 00 00  |G.......B.......|
000005c0  00 00 00 00 34 32 35 38  35 00 00 00 ec 31 00 00  |....42585....1..|
000005d0  47 fd ff ff 84 96 f9 d6  5c 00 00 00 13 00 00 00  |G.......\.......|
000005e0  00 00 00 00 34 32 35 38  36 00 00 00 48 32 00 00  |....42586...H2..|
000005f0  47 fd ff ff 5b c4 f9 d6  31 02 00 00 13 00 00 00  |G...[...1.......|
00000600  00 00 00 00 34 35 64 38  30 00 00 00 7c 34 00 00  |....45d80...|4..|
00000610  47 fd ff ff 99 cc f9 d6  d2 02 00 00 13 00 00 00  |G...............|
00000620  00 00 00 00 34 35 64 38  31 00 00 00 50 37 00 00  |....45d81...P7..|
00000630  47 fd ff ff f5 d7 f9 d6  87 01 00 00 13 00 00 00  |G...............|
00000640  00 00 00 00 34 35 64 38  32 00 00 00 d8 38 00 00  |....45d82....8..|
00000650  47 fd ff ff 12 e0 f9 d6  44 01 00 00 13 00 00 00  |G.......D.......|
00000660  00 00 00 00 34 35 64 38  33 00 00 00 1c 3a 00 00  |....45d83....:..|
00000670  47 fd ff ff 4a e5 f9 d6  32 02 00 00 03 00 00 00  |G...J...2.......|
00000680  00 00 00 00 34 35 64 38  34 00 00 00 50 3c 00 00  |....45d84...P<..|
00000690  48 fd ff ff 60 f6 f0 26  00 02 00 00 13 00 00 00  |H...`..&........|
000006a0  00 00 00 00 35 00 00 00  50 3e 00 00 47 fd ff ff  |....5...P>..G...|
000006b0  f2 10 f7 d6 45 01 00 00  13 00 00 00 00 00 00 00  |....E...........|
000006c0  35 30 32 00 98 3f 00 00  48 fd ff ff 25 db ee 26  |502..?..H...%..&|
000006d0  39 02 00 00 13 00 00 00  00 00 00 00 35 30 33 00  |9...........503.|
000006e0  d4 41 00 00 47 fd ff ff  4e 2e f9 d6 73 00 00 00  |.A..G...N...s...|
000006f0  13 00 00 00 00 00 00 00  36 00 00 00 48 42 00 00  |........6...HB..|
00000700  47 fd ff ff 81 3e f9 d6  00 01 00 00 13 00 00 00  |G....>..........|
00000710  00 00 00 00 37 00 00 00  48 43 00 00 48 fd ff ff  |....7...HC..H...|
00000720  84 50 2a 26 24 04 00 00  13 00 00 00 00 00 00 00  |.P*&$...........|
00000730  38 00 00 00 6c 47 00 00  47 fd ff ff 8b 6a fa d6  |8...lG..G....j..|
00000740  31 02 00 00 13 00 00 00  00 00 00 00 38 30 31 34  |1...........8014|
00000750  30 00 00 00 a0 49 00 00  47 fd ff ff 14 02 fa d6  |0....I..G.......|
00000760  25 01 00 00 13 00 00 00  00 00 00 00 38 30 38 63  |%...........808c|
00000770  30 00 00 00 c8 4a 00 00  47 fd ff ff 2a 0b fa d6  |0....J..G...*...|
00000780  ca 00 00 00 13 00 00 00  00 00 00 00 38 30 38 63  |............808c|
00000790  31 00 00 00 94 4b 00 00  47 fd ff ff 87 11 fa d6  |1....K..G.......|
000007a0  37 01 00 00 13 00 00 00  00 00 00 00 38 30 38 63  |7...........808c|
000007b0  32 00 00 00 cc 4c 00 00  47 fd ff ff fc 1c fa d6  |2....L..G.......|
000007c0  61 00 00 00 13 00 00 00  00 00 00 00 38 30 38 63  |a...........808c|
000007d0  33 00 00 00 30 4d 00 00  47 fd ff ff b9 18 fa d6  |3...0M..G.......|
000007e0  5f 00 00 00 13 00 00 00  00 00 00 00 38 30 38 63  |_...........808c|
000007f0  34 00 00 00 90 4d 00 00  47 fd ff ff 31 33 fa d6  |4....M..G...13..|
00000800  e2 01 00 00 13 00 00 00  00 00 00 00 38 30 38 63  |............808c|
00000810  35 00 00 00 74 4f 00 00  47 fd ff ff 07 38 fa d6  |5...tO..G....8..|
00000820  62 00 00 00 13 00 00 00  00 00 00 00 38 30 38 63  |b...........808c|
00000830  36 00 00 00 d8 4f 00 00  47 fd ff ff 0c 50 fa d6  |6....O..G....P..|
00000840  77 00 00 00 13 00 00 00  00 00 00 00 38 30 38 63  |w...........808c|
00000850  37 00 00 00 50 50 00 00  47 fd ff ff 28 1f fb d6  |7...PP..G...(...|
00000860  c5 00 00 00 13 00 00 00  00 00 00 00 38 30 65 31  |............80e1|
00000870  65 00 00 00 18 51 00 00  47 fd ff ff eb 3c fb d6  |e....Q..G....<..|
00000880  64 02 00 00 13 00 00 00  00 00 00 00 38 30 65 32  |d...........80e2|
00000890  31 00 00 00 7c 53 00 00  47 fd ff ff 53 4d fb d6  |1...|S..G...SM..|
000008a0  61 01 00 00 13 00 00 00  00 00 00 00 38 30 65 32  |a...........80e2|
000008b0  32 00 00 00 e0 54 00 00  47 fd ff ff 6e 51 fb d6  |2....T..G...nQ..|
000008c0  ef 00 00 00 13 00 00 00  00 00 00 00 38 30 65 32  |............80e2|
000008d0  33 00 00 00 d0 55 00 00  48 fd ff ff 94 6e 2a 26  |3....U..H....n*&|
000008e0  c3 01 00 00 13 00 00 00  00 00 00 00 39 00 00 00  |............9...|
000008f0  94 57 00 00 47 fd ff ff  8e bb f6 d6 46 01 00 00  |.W..G.......F...|
00000900  13 00 00 00 00 00 00 00  41 00 00 00 dc 58 00 00  |........A....X..|
00000910  47 fd ff ff 51 a0 f9 d6  e8 03 00 00 13 00 00 00  |G...Q...........|
00000920  00 00 00 00 65 78 74 65  64 69 74 00 c4 5c 00 00  |....extedit..\..|
00000930  47 fd ff ff f2 4f 5a a2  db 03 00 00 13 00 00 00  |G....OZ.........|
00000940  00 00 00 00 6e 65 77 73  62 61 73 65 00 00 00 00  |....newsbase....|
00000950  a0 60 00 00 48 fd ff ff  99 b9 ee 26 47 12 00 00  |.`..H......&G...|
00000960  13 00 00 00 00 00 00 00  35 30 33 43 6f 64 65 73  |........503Codes|
00000970  00 00 00 00 e8 72 00 00  48 fd ff ff a7 c4 80 2b  |.....r..H......+|
00000980  20 08 00 00 13 01 00 00  00 00 00 00 4e 42 5f 00  | ...........NB_.|
00000990  a4 bf 00 00 48 fd ff ff  d5 a9 89 19 2a 01 00 00  |....H.......*...|
000009a0  13 00 00 00 00 00 00 00  34 30 30 43 43 00 00 00  |........400CC...|
000009b0  d0 c0 00 00 47 fd ff ff  d9 7a fa d6 25 01 00 00  |....G....z..%...|
000009c0  13 00 00 00 00 00 00 00  38 30 31 34 31 00 00 00  |........80141...|
000009d0  f8 c1 00 00 48 fd ff ff  f7 73 5e 25 e3 02 00 00  |....H....s^%....|
000009e0  13 00 00 00 00 00 00 00  38 30 31 34 32 00 00 00  |........80142...|
000009f0  dc c4 00 00 47 fd ff ff  77 8f fa d6 9d 01 00 00  |....G...w.......|
00000a00  13 00 00 00 00 00 00 00  38 30 31 34 33 00 00 00  |........80143...|
00000a10  7c c6 00 00 48 fd ff ff  2c 6f 5e 25 bf 01 00 00  ||...H...,o^%....|
00000a20  13 00 00 00 00 00 00 00  38 30 31 34 34 00 00 00  |........80144...|
00000a30  3c c8 00 00 47 fd ff ff  52 b6 fa d6 5e 03 00 00  |<...G...R...^...|
00000a40  13 00 00 00 00 00 00 00  38 30 31 34 35 00 00 00  |........80145...|
00000a50  9c cb 00 00 47 fd ff ff  69 d9 fa d6 ad 00 00 00  |....G...i.......|
00000a60  13 00 00 00 00 00 00 00  38 30 31 34 36 00 00 00  |........80146...|
00000a70  4c cc 00 00 47 fd ff ff  42 d5 fa d6 92 00 00 00  |L...G...B.......|
00000a80  13 00 00 00 00 00 00 00  38 30 31 34 37 00 00 00  |........80147...|
00000a90  e0 cc 00 00 48 fd ff ff  fb e1 f5 27 c0 01 00 00  |....H......'....|
00000aa0  13 00 00 00 00 00 00 00  38 30 31 34 43 00 00 00  |........8014C...|
00000ab0  a0 ce 00 00 47 fd ff ff  6f e8 fa d6 66 01 00 00  |....G...o...f...|
00000ac0  13 00 00 00 00 00 00 00  38 30 31 34 64 00 00 00  |........8014d...|
00000ad0  08 d0 00 00 47 fd ff ff  fb ed fa d6 b7 00 00 00  |....G...........|
00000ae0  13 00 00 00 00 00 00 00  38 30 31 34 45 00 00 00  |........8014E...|
00000af0  c0 d0 00 00 48 fd ff ff  62 c1 96 0f e0 00 00 00  |....H...b.......|
00000b00  13 00 00 00 00 00 00 00  38 30 31 34 66 00 00 00  |........8014f...|
00000b10  a0 d1 00 00 47 fd ff ff  5d fb fa d6 c1 00 00 00  |....G...].......|
00000b20  13 00 00 00 00 00 00 00  38 30 31 35 30 00 00 00  |........80150...|
00000b30  64 d2 00 00 47 fd ff ff  48 ff fa d6 b8 00 00 00  |d...G...H.......|
00000b40  13 00 00 00 00 00 00 00  38 30 31 35 31 00 00 00  |........80151...|
00000b50  1c d3 00 00 47 fd ff ff  ec 03 fb d6 a9 00 00 00  |....G...........|
00000b60  13 00 00 00 00 00 00 00  38 30 31 35 32 00 00 00  |........80152...|
00000b70  c8 d3 00 00 47 fd ff ff  13 07 fb d6 71 00 00 00  |....G.......q...|
00000b80  13 00 00 00 00 00 00 00  38 30 31 35 33 00 00 00  |........80153...|
00000b90  3c d4 00 00 47 fd ff ff  fd 22 ce 93 0a 07 00 00  |<...G...."......|
00000ba0  13 00 00 00 00 00 00 00  65 78 74 65 64 69 74 63  |........exteditc|
00000bb0  6c 69 65 6e 74 00 00 00  48 db 00 00 47 fd ff ff  |lient...H...G...|
00000bc0  de 25 ce 93 c9 04 00 00  13 00 00 00 00 00 00 00  |.%..............|
00000bd0  65 78 74 65 64 69 74 65  64 69 74 6f 72 00 00 00  |extediteditor...|
00000be0  14 e0 00 00 46 fd ff ff  c7 88 b7 22 9d 00 00 00  |....F......"....|
00000bf0  13 00 00 00 00 00 00 00  45 78 74 45 64 69 74 4a  |........ExtEditJ|
00000c00  6f 62 48 61 6e 64 6c 65  00 00 00 00 b4 e0 00 00  |obHandle........|
00000c10  46 fd ff ff 58 98 b7 22  0e 01 00 00 13 00 00 00  |F...X.."........|
00000c20  00 00 00 00 45 78 74 45  64 69 74 46 6c 61 67 73  |....ExtEditFlags|
00000c30  00 00 00 00 c4 e1 00 00  46 fd ff ff 53 0e ec 4d  |........F...S..M|
00000c40  20 02 00 00 13 00 00 00  00 00 00 00 45 78 74 45  | ...........ExtE|
00000c50  64 69 74 43 75 72 73 6f  72 55 6e 69 74 73 00 00  |ditCursorUnits..|
00000c60  e4 e3 00 00 47 fd ff ff  53 29 ce 93 63 01 00 00  |....G...S)..c...|
00000c70  13 00 00 00 00 00 00 00  65 78 74 65 64 69 74 64  |........exteditd|
00000c80  61 74 61 74 79 70 65 73  00 00 00 00 48 e5 00 00  |atatypes....H...|
00000c90  47 fd ff ff 80 2f a0 cd  f7 00 00 00 13 00 00 00  |G..../..........|
00000ca0  00 00 00 00 65 78 74 65  64 69 74 73 75 62 74 79  |....exteditsubty|
00000cb0  70 65 73 00 40 e6 00 00  47 fd ff ff 68 34 a0 cd  |pes.@...G...h4..|
00000cc0  03 01 00 00 13 00 00 00  00 00 00 00 65 78 74 65  |............exte|
00000cd0  64 69 74 6d 6f 64 65 72  61 74 6f 72 00 00 00 00  |ditmoderator....|
00000ce0  44 e7 00 00 47 fd ff ff  8f 6f de 07 f5 02 00 00  |D...G....o......|
00000cf0  13 00 00 00 00 00 00 00  45 78 74 45 64 69 74 56  |........ExtEditV|
00000d00  61 72 69 61 62 6c 65 00  3c ea 00 00 47 fd ff ff  |ariable.<...G...|
00000d10  15 81 fb d6 38 01 00 00  13 00 00 00 00 00 00 00  |....8...........|
00000d20  44 41 42 30 30 00 00 00  74 eb 00 00 48 fd ff ff  |DAB00...t...H...|
00000d30  0b 7b a5 20 29 01 00 00  13 00 00 00 00 00 00 00  |.{. )...........|
00000d40  44 41 42 30 31 00 00 00  a0 ec 00 00 47 fd ff ff  |DAB01.......G...|
00000d50  b6 58 fb d6 47 01 00 00  13 00 00 00 00 00 00 00  |.X..G...........|
00000d60  38 31 34 30 30 00 00 00  e8 ed 00 00 47 fd ff ff  |81400.......G...|
00000d70  1c 43 94 cd c9 08 00 00  13 00 00 00 00 00 00 00  |.C..............|
00000d80  38 33 35 38 30 00 00 00  b4 f6 00 00 47 fd ff ff  |83580.......G...|
00000d90  ee ee 48 cd 59 02 00 00  03 00 00 00 00 00 00 00  |..H.Y...........|
00000da0  38 33 35 38 32 00 00 00  10 f9 00 00 47 fd ff ff  |83582.......G...|
00000db0  7e ef 48 cd 7e 09 00 00  03 00 00 00 00 00 00 00  |~.H.~...........|
00000dc0  38 33 35 38 31 00 00 00  90 02 01 00 48 fd ff ff  |83581.......H...|
00000dd0  14 ee 0b 28 63 12 00 00  03 00 00 00 00 00 00 00  |...(c...........|
00000de0  21 52 6f 6f 74 00 00 00  f4 14 01 00 47 fd ff ff  |!Root.......G...|
00000df0  fe 48 9a e9 f3 00 00 00  13 00 00 00 00 00 00 00  |.H..............|
00000e00  42 00 00 00 e8 15 01 00  47 fd ff ff 49 5c 9a e9  |B.......G...I\..|
00000e10  c6 01 00 00 13 00 00 00  00 00 00 00 43 00 00 00  |............C...|
00000e20  b0 17 01 00 48 fd ff ff  d9 7e 8d 07 ae 01 00 00  |....H....~......|
00000e30  13 00 00 00 00 00 00 00  46 00 00 00 60 19 01 00  |........F...`...|
00000e40  47 fd ff ff 0a 81 e5 d0  1f 01 00 00 13 00 00 00  |G...............|
00000e50  00 00 00 00 34 30 30 43  38 00 00 00 80 1a 01 00  |....400C8.......|
00000e60  48 fd ff ff 26 d9 80 2b  d4 02 00 00 13 01 00 00  |H...&..+........|
00000e70  00 00 00 00 50 6c 75 67  49 6e 5f 00 08 5b 01 00  |....PlugIn_..[..|
00000e80  48 fd ff ff d8 d1 f4 1d  d8 01 00 00 13 00 00 00  |H...............|
00000e90  00 00 00 00 34 30 30 43  41 00 00 00 e0 5c 01 00  |....400CA....\..|
00000ea0  48 fd ff ff 1f 96 89 19  a7 00 00 00 13 00 00 00  |H...............|
00000eb0  00 00 00 00 34 30 30 43  42 00 00 00 88 5d 01 00  |....400CB....]..|
00000ec0  48 fd ff ff 81 37 d7 26  1a 03 00 00 13 00 00 00  |H....7.&........|
00000ed0  00 00 00 00 34 30 32 00  a4 60 01 00 48 fd ff ff  |....402..`..H...|
00000ee0  db e9 d7 26 dd 00 00 00  13 00 00 00 00 00 00 00  |...&............|
00000ef0  34 30 33 00 84 61 01 00  48 fd ff ff ae fe d8 26  |403..a..H......&|
00000f00  69 01 00 00 13 00 00 00  00 00 00 00 34 30 34 00  |i...........404.|
00000f10  f0 62 01 00 48 fd ff ff  81 a0 0c 28 8b 07 00 00  |.b..H......(....|
00000f20  13 00 00 00 00 00 00 00  34 30 35 00 7c 6a 01 00  |........405.|j..|
00000f30  48 fd ff ff 5b c2 db 26  43 01 00 00 13 00 00 00  |H...[..&C.......|
00000f40  00 00 00 00 34 30 36 00  c0 6b 01 00 48 fd ff ff  |....406..k..H...|
00000f50  e2 a8 d7 26 cd 02 00 00  13 00 00 00 00 00 00 00  |...&............|
00000f60  34 30 37 00 90 6e 01 00  48 fd ff ff 47 da 0c 28  |407..n..H...G..(|
00000f70  ac 09 00 00 13 00 00 00  00 00 00 00 35 30 30 00  |............500.|
00000f80  3c 78 01 00 48 fd ff ff  6c 0f ec 26 a9 01 00 00  |<x..H...l..&....|
00000f90  13 00 00 00 00 00 00 00  35 30 31 00 e8 79 01 00  |........501..y..|
00000fa0  48 fd ff ff 69 94 f0 26  e0 02 00 00 13 00 00 00  |H...i..&........|
00000fb0  00 00 00 00 44 00 00 00  c8 7c 01 00 48 fd ff ff  |....D....|..H...|
00000fc0  f9 8c 2a 26 e1 00 00 00  13 00 00 00 00 00 00 00  |..*&............|
00000fd0  45 00 00 00 ac 7d 01 00  48 fd ff ff 46 2e 69 2a  |E....}..H...F.i*|
00000fe0  40 04 00 00 13 00 00 00  00 00 00 00 34 35 44 38  |@...........45D8|
00000ff0  35 00 00 00 44 41 54 41  f1 00 00 00 51 75 69 74  |5...DATA....Quit|
00001000  20 28 30 29 0a 23 50 61  72 65 6e 74 20 4d 53 47  | (0).#Parent MSG|
00001010  5f 0a 4f 6e 20 72 65 63  65 69 76 69 6e 67 20 74  |_.On receiving t|
00001020  68 69 73 20 62 72 6f 61  64 63 61 73 74 20 6d 65  |his broadcast me|
00001030  73 73 61 67 65 2c 20 74  68 65 20 74 61 73 6b 20  |ssage, the task |
00001040  73 68 6f 75 6c 64 20 74  69 64 79 20 75 70 2c 20  |should tidy up, |
00001050  63 61 6c 6c 20 3c 57 69  6d 70 5f 43 6c 6f 73 65  |call <Wimp_Close|
00001060  44 6f 77 6e 3e 20 61 6e  64 20 3c 4f 53 5f 45 78  |Down> and <OS_Ex|
00001070  69 74 3d 3e 4f 53 3a 4f  53 5f 45 78 69 74 3e 2e  |it=>OS:OS_Exit>.|
00001080  0a 0a 49 66 20 74 61 73  6b 20 64 6f 65 73 6e 27  |..If task doesn'|
00001090  74 20 77 61 6e 74 20 74  6f 20 71 75 69 74 2c 20  |t want to quit, |
000010a0  69 74 20 73 68 6f 75 6c  64 20 68 61 76 65 20 73  |it should have s|
000010b0  61 69 64 20 73 6f 20 77  68 65 6e 20 69 74 20 72  |aid so when it r|
000010c0  65 63 65 69 76 65 64 20  74 68 65 20 3c 50 72 65  |eceived the <Pre|
000010d0  51 75 69 74 3d 3e 4d 73  67 5f 38 3e 20 6d 65 73  |Quit=>Msg_8> mes|
000010e0  73 61 67 65 2e 00 00 00  44 41 54 41 cc 02 00 00  |sage....DATA....|
000010f0  4d 65 73 73 61 67 65 5f  44 61 74 61 53 61 76 65  |Message_DataSave|
00001100  20 28 31 29 0a 23 50 61  72 65 6e 74 20 4d 53 47  | (1).#Parent MSG|
00001110  5f 0a 32 30 09 64 65 73  74 69 6e 61 74 69 6f 6e  |_.20.destination|
00001120  09 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 0a 32  |.window handle.2|
00001130  34 09 20 09 09 69 63 6f  6e 20 68 61 6e 64 6c 65  |4. ..icon handle|
00001140  0a 32 38 09 20 09 09 73  63 72 65 65 6e 78 0a 33  |.28. ..screenx.3|
00001150  32 09 20 09 09 73 63 72  65 65 6e 79 0a 33 36 09  |2. ..screeny.36.|
00001160  65 73 74 69 6d 61 74 65  64 20 73 69 7a 65 0a 34  |estimated size.4|
00001170  30 09 3c 66 69 6c 65 74  79 70 65 3d 3e 46 69 6c  |0.<filetype=>Fil|
00001180  65 74 79 70 65 73 3a 21  52 6f 6f 74 3e 20 6f 66  |etypes:!Root> of|
00001190  20 64 61 74 61 0a 09 26  31 30 30 30 20 66 6f 72  | data..&1000 for|
000011a0  20 64 69 72 65 63 74 6f  72 79 2c 20 26 32 30 30  | directory, &200|
000011b0  30 20 66 6f 72 20 61 70  70 6c 69 63 61 74 69 6f  |0 for applicatio|
000011c0  6e 2c 20 2d 31 20 66 6f  72 20 75 6e 74 79 70 65  |n, -1 for untype|
000011d0  64 2e 0a 34 34 09 70 72  6f 70 6f 73 65 64 20 6c  |d..44.proposed l|
000011e0  65 61 66 6e 61 6d 65 2c  20 30 2d 74 65 72 6d 69  |eafname, 0-termi|
000011f0  6e 61 74 65 64 0a 0a 54  68 69 73 20 69 6e 64 69  |nated..This indi|
00001200  63 61 74 65 73 20 74 68  61 74 20 74 68 65 20 73  |cates that the s|
00001210  65 6e 64 65 72 20 77 61  6e 74 73 20 74 6f 20 73  |ender wants to s|
00001220  61 76 65 20 64 61 74 61  20 74 6f 20 74 68 65 20  |ave data to the |
00001230  72 65 63 65 69 76 65 72  0a 0a 4e 6f 72 6d 61 6c  |receiver..Normal|
00001240  20 75 73 65 3a 0a 20 20  8f 09 55 73 65 72 20 68  | use:.  ..User h|
00001250  61 73 20 74 65 72 6d 69  6e 61 74 65 64 20 61 20  |as terminated a |
00001260  64 72 61 67 2e 0a 20 20  8f 09 59 6f 75 20 67 65  |drag..  ..You ge|
00001270  74 20 74 68 65 20 66 69  72 73 74 20 66 6f 75 72  |t the first four|
00001280  20 77 6f 72 64 73 20 77  69 74 68 20 3c 57 69 6d  | words with <Wim|
00001290  70 5f 47 65 74 50 6f 69  6e 74 65 72 49 6e 66 6f  |p_GetPointerInfo|
000012a0  3e 0a 20 20 8f 09 59 6f  75 20 73 65 6e 64 20 6d  |>.  ..You send m|
000012b0  65 73 73 61 67 65 20 74  6f 20 6d 65 6e 74 69 6f  |essage to mentio|
000012c0  6e 65 64 20 77 69 6e 64  6f 77 2e 0a 0a 50 6f 73  |ned window...Pos|
000012d0  73 69 62 6c 65 20 72 65  73 70 6f 6e 73 65 73 20  |sible responses |
000012e0  66 72 6f 6d 20 6f 74 68  65 72 20 74 61 73 6b 3a  |from other task:|
000012f0  0a 20 20 8f 09 49 74 20  73 65 6e 64 73 20 3c 44  |.  ..It sends <D|
00001300  61 74 61 53 61 76 65 41  63 6b 3d 3e 4d 73 67 5f  |ataSaveAck=>Msg_|
00001310  32 3e 0a 20 20 8f 09 49  74 20 73 65 6e 64 73 20  |2>.  ..It sends |
00001320  3c 52 61 6d 46 65 74 63  68 3d 3e 4d 73 67 5f 36  |<RamFetch=>Msg_6|
00001330  3e 0a 0a 59 6f 75 20 73  68 6f 75 6c 64 20 73 74  |>..You should st|
00001340  6f 72 65 20 74 68 65 20  6d 79 5f 72 65 66 20 6f  |ore the my_ref o|
00001350  66 20 65 61 63 68 20 64  61 74 61 20 73 61 76 65  |f each data save|
00001360  20 6d 65 73 73 61 67 65  2c 20 74 6f 20 63 68 65  | message, to che|
00001370  63 6b 20 61 67 61 69 6e  73 74 20 61 6e 79 20 66  |ck against any f|
00001380  75 74 75 72 65 20 3c 44  61 74 61 53 61 76 65 64  |uture <DataSaved|
00001390  3d 3e 4d 73 67 5f 44 3e  20 6d 65 73 73 61 67 65  |=>Msg_D> message|
000013a0  20 79 6f 75 20 6d 69 67  68 74 20 72 65 63 69 65  | you might recie|
000013b0  76 65 2e 0a 44 41 54 41  92 02 00 00 4d 65 73 73  |ve..DATA....Mess|
000013c0  61 67 65 5f 44 61 74 61  52 65 71 75 65 73 74 20  |age_DataRequest |
000013d0  20 28 26 31 30 29 0a 23  50 61 72 65 6e 74 20 4d  | (&10).#Parent M|
000013e0  53 47 5f 0a 2b 20 32 30  09 77 69 6e 64 6f 77 20  |SG_.+ 20.window |
000013f0  68 61 6e 64 6c 65 0a 2b  20 32 34 09 69 6e 74 65  |handle.+ 24.inte|
00001400  72 6e 61 6c 20 68 61 6e  64 6c 65 0a 2b 20 32 38  |rnal handle.+ 28|
00001410  09 78 0a 2b 20 33 32 09  79 0a 2b 20 33 36 09 3d  |.x.+ 32.y.+ 36.=|
00001420  20 32 0a 2b 20 34 30 09  6c 69 73 74 20 6f 66 20  | 2.+ 40.list of |
00001430  66 69 6c 65 74 79 70 65  73 20 69 6e 20 6f 72 64  |filetypes in ord|
00001440  65 72 20 6f 66 20 70 72  65 66 65 72 65 6e 63 65  |er of preference|
00001450  2c 20 74 65 72 6d 69 6e  61 74 65 64 20 62 79 20  |, terminated by |
00001460  2d 31 0a 0a 52 65 63 65  69 76 65 72 20 73 68 6f  |-1..Receiver sho|
00001470  75 6c 64 20 69 67 6e 6f  72 65 20 74 68 69 73 20  |uld ignore this |
00001480  6d 65 73 73 61 67 65 20  69 66 20 62 69 74 20 32  |message if bit 2|
00001490  20 69 73 6e 27 74 20 73  65 74 2e 0a 0a 54 68 69  | isn't set...Thi|
000014a0  73 20 6d 65 73 73 61 67  65 20 69 73 20 62 72 6f  |s message is bro|
000014b0  61 64 63 61 73 74 65 64  20 62 79 20 61 20 74 61  |adcasted by a ta|
000014c0  73 6b 20 77 68 6f 20 77  61 6e 74 73 20 74 6f 20  |sk who wants to |
000014d0  70 61 73 74 65 20 74 68  65 20 63 6f 6e 74 65 6e  |paste the conten|
000014e0  74 73 20 6f 66 20 74 68  65 20 63 6c 69 70 62 6f  |ts of the clipbo|
000014f0  61 72 64 20 69 6e 74 6f  20 69 74 73 20 6f 77 6e  |ard into its own|
00001500  20 64 6f 63 75 6d 65 6e  74 2e 20 57 68 65 6e 20  | document. When |
00001510  74 68 65 20 6f 77 6e 65  72 20 6f 66 20 74 68 65  |the owner of the|
00001520  20 63 6c 69 70 62 6f 61  72 64 20 72 65 63 65 69  | clipboard recei|
00001530  76 65 73 20 74 68 69 73  20 6d 65 73 73 61 67 65  |ves this message|
00001540  2c 20 69 74 20 73 68 6f  75 6c 64 20 63 68 6f 6f  |, it should choo|
00001550  73 65 20 74 68 65 20 65  61 72 6c 69 65 73 74 20  |se the earliest |
00001560  66 69 6c 65 74 79 70 65  20 69 6e 20 74 68 65 20  |filetype in the |
00001570  6c 69 73 74 20 74 68 61  74 20 69 74 20 63 61 6e  |list that it can|
00001580  20 70 72 6f 76 69 64 65  20 28 6f 72 20 75 73 65  | provide (or use|
00001590  20 6e 61 74 69 76 65 20  66 6f 72 6d 61 74 20 69  | native format i|
000015a0  66 20 6e 6f 6e 65 29 20  61 6e 64 20 72 65 70 6c  |f none) and repl|
000015b0  79 20 77 69 74 68 20 61  20 3c 44 61 74 61 53 61  |y with a <DataSa|
000015c0  76 65 3d 3e 4d 73 67 5f  31 3e 20 6d 65 73 73 61  |ve=>Msg_1> messa|
000015d0  67 65 2e 0a 0a 57 68 65  6e 20 74 68 65 20 22 50  |ge...When the "P|
000015e0  61 73 74 65 72 22 20 72  65 63 65 69 76 65 73 20  |aster" receives |
000015f0  74 68 69 73 2c 20 69 74  20 73 68 6f 75 6c 64 20  |this, it should |
00001600  63 68 65 63 6b 20 74 68  65 20 66 69 6c 65 74 79  |check the filety|
00001610  70 65 20 61 6e 64 20 6a  75 73 74 20 69 67 6e 6f  |pe and just igno|
00001620  72 65 20 74 68 65 20 6d  65 73 73 61 67 65 20 69  |re the message i|
00001630  66 20 69 74 20 63 61 6e  27 74 20 68 61 6e 64 6c  |f it can't handl|
00001640  65 20 69 74 2e 0a 00 00  44 41 54 41 8a 01 00 00  |e it....DATA....|
00001650  4d 65 73 73 61 67 65 5f  44 72 61 67 67 69 6e 67  |Message_Dragging|
00001660  20 20 28 26 31 31 29 0a  23 50 61 72 65 6e 74 20  |  (&11).#Parent |
00001670  4d 53 47 5f 0a 2b 20 32  30 09 77 69 6e 64 6f 77  |MSG_.+ 20.window|
00001680  20 68 61 6e 64 6c 65 0a  2b 20 32 34 09 69 63 6f  | handle.+ 24.ico|
00001690  6e 20 68 61 6e 64 6c 65  0a 2b 20 32 38 09 78 0a  |n handle.+ 28.x.|
000016a0  2b 20 33 32 09 79 0a 2b  20 33 36 09 3c 66 6c 61  |+ 32.y.+ 36.<fla|
000016b0  67 73 3d 3e 4d 73 67 5f  31 31 5f 66 6c 61 67 73  |gs=>Msg_11_flags|
000016c0  3e 0a 2b 20 34 30 09 62  6f 75 6e 64 69 6e 67 20  |>.+ 40.bounding |
000016d0  62 6f 78 0a 2b 20 35 36  09 6c 69 73 74 20 6f 66  |box.+ 56.list of|
000016e0  20 66 69 6c 65 74 79 70  65 73 2c 20 74 65 72 6d  | filetypes, term|
000016f0  69 6e 61 74 65 64 20 77  69 74 68 20 2d 31 0a 0a  |inated with -1..|
00001700  54 68 69 73 20 6d 65 73  73 61 67 65 20 69 73 20  |This message is |
00001710  73 65 6e 74 20 63 6f 6e  74 69 6e 75 6f 75 73 6c  |sent continuousl|
00001720  79 20 62 79 20 74 68 65  20 74 61 73 6b 20 77 68  |y by the task wh|
00001730  69 63 68 20 69 73 20 64  6f 69 6e 67 20 74 68 65  |ich is doing the|
00001740  20 64 72 61 67 67 69 6e  67 2e 20 49 6e 69 74 69  | dragging. Initi|
00001750  61 6c 6c 79 20 69 74 20  69 73 20 62 72 6f 61 64  |ally it is broad|
00001760  63 61 73 74 65 64 2c 20  62 75 74 20 61 66 74 65  |casted, but afte|
00001770  72 20 61 20 74 61 73 6b  20 63 6c 61 69 6d 73 20  |r a task claims |
00001780  74 68 65 20 6d 65 73 73  61 67 65 2c 20 69 74 20  |the message, it |
00001790  69 73 20 6f 6e 6c 79 20  73 65 6e 74 20 74 6f 20  |is only sent to |
000017a0  74 68 61 74 2e 20 43 6c  61 69 6d 20 62 79 20 73  |that. Claim by s|
000017b0  65 6e 64 69 6e 67 20 3c  44 72 61 67 43 6c 61 69  |ending <DragClai|
000017c0  6d 3d 3e 4d 73 67 5f 31  32 3e 20 6d 65 73 73 61  |m=>Msg_12> messa|
000017d0  67 65 00 00 44 41 54 41  c2 00 00 00 46 6c 61 67  |ge..DATA....Flag|
000017e0  73 0a 42 69 74 09 4d 65  61 6e 69 6e 67 20 77 68  |s.Bit.Meaning wh|
000017f0  65 6e 20 73 65 74 0a 23  4c 69 6e 65 0a 20 31 09  |en set.#Line. 1.|
00001800  53 65 6e 64 69 6e 67 20  64 61 74 61 20 66 72 6f  |Sending data fro|
00001810  6d 20 73 65 6c 65 63 74  69 6f 6e 0a 20 32 09 53  |m selection. 2.S|
00001820  65 6e 64 69 6e 67 20 64  61 74 61 20 66 72 6f 6d  |ending data from|
00001830  20 63 6c 69 70 62 6f 61  72 64 0a 20 33 09 53 6f  | clipboard. 3.So|
00001840  75 72 63 65 20 64 61 74  61 20 77 69 6c 6c 20 62  |urce data will b|
00001850  65 20 64 65 6c 65 74 65  64 0a 20 34 09 44 6f 20  |e deleted. 4.Do |
00001860  4e 4f 54 20 63 6c 61 69  6d 20 74 68 69 73 20 6d  |NOT claim this m|
00001870  65 73 73 61 67 65 0a 0a  41 6c 6c 20 6f 74 68 65  |essage..All othe|
00001880  72 20 62 69 74 73 20 72  65 73 65 72 76 65 64 20  |r bits reserved |
00001890  61 6e 64 20 30 2e 00 00  44 41 54 41 e3 00 00 00  |and 0...DATA....|
000018a0  4d 65 73 73 61 67 65 5f  44 72 61 67 43 6c 61 69  |Message_DragClai|
000018b0  6d 20 20 28 26 31 32 29  0a 23 50 61 72 65 6e 74  |m  (&12).#Parent|
000018c0  20 4d 53 47 5f 0a 2b 20  32 30 09 3c 66 6c 61 67  | MSG_.+ 20.<flag|
000018d0  73 3d 3e 4d 73 67 5f 31  32 5f 66 6c 61 67 73 3e  |s=>Msg_12_flags>|
000018e0  0a 2b 20 32 34 09 6c 69  73 74 20 6f 66 20 66 69  |.+ 24.list of fi|
000018f0  6c 65 74 79 70 65 73 2c  20 74 65 72 6d 69 6e 61  |letypes, termina|
00001900  74 65 64 20 77 69 74 68  20 2d 31 0a 0a 54 68 69  |ted with -1..Thi|
00001910  73 20 6d 65 73 73 61 67  65 20 69 73 20 73 65 6e  |s message is sen|
00001920  74 20 61 73 20 61 20 72  65 70 6c 79 20 74 6f 20  |t as a reply to |
00001930  61 20 3c 44 72 61 67 67  69 6e 67 3d 3e 4d 73 67  |a <Dragging=>Msg|
00001940  5f 31 31 3e 20 6d 65 73  73 61 67 65 20 74 6f 20  |_11> message to |
00001950  69 6e 66 6f 72 6d 20 74  68 65 20 73 65 6e 64 65  |inform the sende|
00001960  72 20 74 68 61 74 20 77  65 20 63 61 6e 20 72 65  |r that we can re|
00001970  63 65 69 76 65 20 64 61  74 61 2e 00 44 41 54 41  |ceive data..DATA|
00001980  99 00 00 00 46 6c 61 67  73 0a 42 69 74 09 4d 65  |....Flags.Bit.Me|
00001990  61 6e 69 6e 67 20 77 68  65 6e 20 73 65 74 0a 23  |aning when set.#|
000019a0  4c 69 6e 65 0a 20 30 09  48 61 76 65 20 63 68 61  |Line. 0.Have cha|
000019b0  6e 67 65 64 20 70 6f 69  6e 74 65 72 20 73 68 61  |nged pointer sha|
000019c0  70 65 0a 20 31 09 52 65  6d 6f 76 65 20 77 69 6d  |pe. 1.Remove wim|
000019d0  70 20 64 72 61 67 62 6f  78 0a 20 33 09 53 6f 75  |p dragbox. 3.Sou|
000019e0  72 63 65 20 73 68 6f 75  6c 64 20 62 65 20 64 65  |rce should be de|
000019f0  6c 65 74 65 64 0a 0a 41  6c 6c 20 6f 74 68 65 72  |leted..All other|
00001a00  20 62 69 74 73 20 72 65  73 65 72 76 65 64 20 61  | bits reserved a|
00001a10  6e 64 20 30 2e 00 00 00  44 41 54 41 73 01 00 00  |nd 0....DATAs...|
00001a20  4d 65 73 73 61 67 65 5f  44 61 74 61 53 61 76 65  |Message_DataSave|
00001a30  41 63 6b 20 28 32 29 0a  23 50 61 72 65 6e 74 20  |Ack (2).#Parent |
00001a40  4d 53 47 5f 0a 2b 20 32  30 09 64 65 73 74 69 6e  |MSG_.+ 20.destin|
00001a50  61 74 69 6f 6e 09 77 69  6e 64 6f 77 20 68 61 6e  |ation.window han|
00001a60  64 6c 65 0a 2b 20 32 34  09 20 09 09 69 63 6f 6e  |dle.+ 24. ..icon|
00001a70  20 68 61 6e 64 6c 65 0a  2b 20 32 38 09 20 09 09  | handle.+ 28. ..|
00001a80  73 63 72 65 65 6e 78 0a  2b 20 33 32 09 20 09 09  |screenx.+ 32. ..|
00001a90  73 63 72 65 65 6e 79 0a  2b 20 33 36 09 65 73 74  |screeny.+ 36.est|
00001aa0  69 6d 61 74 65 64 20 73  69 7a 65 2c 20 6f 72 20  |imated size, or |
00001ab0  2d 31 20 69 66 20 27 75  6e 73 61 66 65 27 0a 2b  |-1 if 'unsafe'.+|
00001ac0  20 34 30 09 3c 66 69 6c  65 74 79 70 65 3d 3e 46  | 40.<filetype=>F|
00001ad0  69 6c 65 74 79 70 65 73  3a 21 52 6f 6f 74 3e 20  |iletypes:!Root> |
00001ae0  6f 66 20 64 61 74 61 0a  2b 20 34 34 09 66 75 6c  |of data.+ 44.ful|
00001af0  6c 20 70 61 74 68 6e 61  6d 65 20 28 6f 72 20 22  |l pathname (or "|
00001b00  5c 3c 57 69 6d 70 24 53  63 72 61 70 5c 3e 22 29  |\<Wimp$Scrap\>")|
00001b10  0a 0a 57 6f 72 64 73 20  61 74 20 32 30 20 74 6f  |..Words at 20 to|
00001b20  20 33 32 20 61 72 65 20  70 72 65 73 65 72 76 65  | 32 are preserve|
00001b30  64 20 66 72 6f 6d 20 3c  44 61 74 61 53 61 76 65  |d from <DataSave|
00001b40  3d 3e 4d 73 67 5f 31 3e  20 6d 65 73 73 61 67 65  |=>Msg_1> message|
00001b50  2e 20 54 68 69 73 20 69  73 20 75 73 75 61 6c 6c  |. This is usuall|
00001b60  79 20 66 6f 6c 6c 6f 77  65 64 20 62 79 20 61 20  |y followed by a |
00001b70  3c 44 61 74 61 4c 6f 61  64 3d 3e 4d 73 67 5f 33  |<DataLoad=>Msg_3|
00001b80  3e 20 6d 65 73 73 61 67  65 2e 0a 00 44 41 54 41  |> message...DATA|
00001b90  c1 01 00 00 4d 65 73 73  61 67 65 5f 44 61 74 61  |....Message_Data|
00001ba0  4c 6f 61 64 20 20 28 33  29 0a 23 50 61 72 65 6e  |Load  (3).#Paren|
00001bb0  74 20 4d 53 47 5f 0a 2b  20 32 30 09 44 65 73 74  |t MSG_.+ 20.Dest|
00001bc0  20 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 0a 2b  | window handle.+|
00001bd0  20 32 34 09 69 63 6f 6e  20 68 61 6e 64 6c 65 0a  | 24.icon handle.|
00001be0  2b 20 32 38 09 78 20 63  6f 6f 72 64 0a 2b 20 33  |+ 28.x coord.+ 3|
00001bf0  32 09 79 20 63 6f 6f 72  64 0a 2b 20 33 36 09 45  |2.y coord.+ 36.E|
00001c00  73 74 69 6d 61 74 65 64  20 73 69 7a 65 0a 2b 20  |stimated size.+ |
00001c10  34 30 09 3c 66 69 6c 65  74 79 70 65 3d 3e 46 69  |40.<filetype=>Fi|
00001c20  6c 65 74 79 70 65 73 3a  21 52 6f 6f 74 3e 0a 2b  |letypes:!Root>.+|
00001c30  20 34 34 09 66 75 6c 6c  20 70 61 74 68 6e 61 6d  | 44.full pathnam|
00001c40  65 0a 2b 20 2f 6e 2f 09  63 6f 6c 75 6d 6e 20 6f  |e.+ /n/.column o|
00001c50  66 20 66 69 6c 65 20 69  6e 20 63 75 72 72 65 6e  |f file in curren|
00001c60  74 20 73 65 6c 65 63 74  69 6f 6e 0a 2b 20 2f 6e  |t selection.+ /n|
00001c70  2f 20 2b 20 34 09 72 6f  77 20 6f 66 20 66 69 6c  |/ + 4.row of fil|
00001c80  65 20 69 6e 20 63 75 72  72 65 6e 74 20 73 65 6c  |e in current sel|
00001c90  65 63 74 69 6f 6e 0a 0a  52 65 63 65 69 76 65 72  |ection..Receiver|
00001ca0  20 6f 66 20 6d 65 73 73  61 67 65 20 73 68 6f 75  | of message shou|
00001cb0  6c 64 20 6c 6f 61 64 2c  20 61 6e 64 20 61 6e 73  |ld load, and ans|
00001cc0  77 65 72 20 77 69 74 68  20 3c 44 61 74 61 4c 6f  |wer with <DataLo|
00001cd0  61 64 41 63 6b 3d 3e 4d  73 67 5f 34 3e 20 69 66  |adAck=>Msg_4> if|
00001ce0  20 73 75 63 63 65 73 73  2e 20 54 68 65 20 63 6f  | success. The co|
00001cf0  6c 75 6d 6e 20 61 6e 64  20 72 6f 77 20 69 6e 66  |lumn and row inf|
00001d00  6f 72 6d 61 74 69 6f 6e  20 73 74 6f 72 65 64 20  |ormation stored |
00001d10  77 6f 72 64 20 61 6c 69  67 6e 65 64 20 61 66 74  |word aligned aft|
00001d20  65 72 20 74 68 65 20 70  61 74 68 6e 61 6d 65 20  |er the pathname |
00001d30  69 73 20 6e 6f 74 20 70  72 65 73 65 6e 74 20 69  |is not present i|
00001d40  6e 20 52 49 53 43 20 4f  53 20 32 2e 0a 00 00 00  |n RISC OS 2.....|
00001d50  44 41 54 41 4c 01 00 00  4d 65 73 73 61 67 65 5f  |DATAL...Message_|
00001d60  44 61 74 61 4c 6f 61 64  41 63 6b 20 20 28 34 29  |DataLoadAck  (4)|
00001d70  0a 23 50 61 72 65 6e 74  20 4d 53 47 5f 0a 2b 20  |.#Parent MSG_.+ |
00001d80  32 30 09 44 65 73 74 20  77 69 6e 64 6f 77 20 68  |20.Dest window h|
00001d90  61 6e 64 6c 65 0a 2b 20  32 34 09 69 63 6f 6e 20  |andle.+ 24.icon |
00001da0  68 61 6e 64 6c 65 0a 2b  20 32 38 09 78 20 63 6f  |handle.+ 28.x co|
00001db0  6f 72 64 0a 2b 20 33 32  09 79 20 63 6f 6f 72 64  |ord.+ 32.y coord|
00001dc0  0a 2b 20 33 36 09 45 73  74 69 6d 61 74 65 64 20  |.+ 36.Estimated |
00001dd0  73 69 7a 65 0a 2b 20 34  30 09 3c 66 69 6c 65 74  |size.+ 40.<filet|
00001de0  79 70 65 3d 3e 46 69 6c  65 74 79 70 65 73 3a 21  |ype=>Filetypes:!|
00001df0  52 6f 6f 74 3e 0a 2b 20  34 34 09 66 75 6c 6c 20  |Root>.+ 44.full |
00001e00  70 61 74 68 6e 61 6d 65  0a 0a 54 68 69 73 20 69  |pathname..This i|
00001e10  73 20 73 65 6e 74 20 61  73 20 61 6e 20 61 6e 73  |s sent as an ans|
00001e20  77 65 72 20 74 6f 20 61  20 3c 44 61 74 61 4c 6f  |wer to a <DataLo|
00001e30  61 64 3d 3e 4d 73 67 5f  33 3e 20 6d 65 73 73 61  |ad=>Msg_3> messa|
00001e40  67 65 2e 20 41 6c 6c 20  74 68 61 74 20 73 68 6f  |ge. All that sho|
00001e50  75 6c 64 20 62 65 20 64  6f 6e 65 2c 20 69 73 20  |uld be done, is |
00001e60  74 6f 20 63 68 61 6e 67  65 20 6d 65 73 73 61 67  |to change messag|
00001e70  65 20 74 79 70 65 20 74  6f 20 34 2c 20 61 6e 64  |e type to 4, and|
00001e80  20 66 69 6c 6c 20 69 6e  20 74 68 65 20 79 6f 75  | fill in the you|
00001e90  72 5f 72 65 66 20 66 69  65 6c 64 2e 44 41 54 41  |r_ref field.DATA|
00001ea0  a1 01 00 00 4d 65 73 73  61 67 65 20 46 69 6c 65  |....Message File|
00001eb0  72 4f 70 65 6e 44 69 72  20 28 26 34 30 30 29 0a  |rOpenDir (&400).|
00001ec0  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 2b 20 32  |#Parent MSG_.+ 2|
00001ed0  30 09 3c 66 69 6c 69 6e  67 20 73 79 73 74 65 6d  |0.<filing system|
00001ee0  20 6e 75 6d 62 65 72 3d  3e 4f 53 3a 66 73 79 73  | number=>OS:fsys|
00001ef0  5f 69 64 65 6e 74 3e 0a  2b 20 32 34 09 66 6c 61  |_ident>.+ 24.fla|
00001f00  67 2c 20 62 69 74 20 30  20 73 65 74 20 74 6f 20  |g, bit 0 set to |
00001f10  70 72 65 76 65 6e 74 20  63 61 6e 6f 6e 69 63 61  |prevent canonica|
00001f20  6c 69 73 61 74 69 6f 6e  20 6f 66 20 6e 61 6d 65  |lisation of name|
00001f30  20 62 65 66 6f 72 65 20  75 73 69 6e 67 0a 2b 20  | before using.+ |
00001f40  32 38 09 6e 61 6d 65 20  6f 66 20 64 69 72 65 63  |28.name of direc|
00001f50  74 6f 72 79 2c 20 7a 65  72 6f 20 74 65 72 6d 69  |tory, zero termi|
00001f60  6e 61 74 65 64 0a 0a 54  68 69 73 20 6d 65 73 73  |nated..This mess|
00001f70  61 67 65 20 73 68 6f 75  6c 64 20 62 65 20 62 72  |age should be br|
00001f80  6f 61 64 63 61 73 74 20  74 6f 20 69 6e 73 74 72  |oadcast to instr|
00001f90  75 63 74 20 74 68 65 20  66 69 6c 65 72 20 74 6f  |uct the filer to|
00001fa0  20 6f 70 65 6e 20 61 20  64 69 72 65 63 74 6f 72  | open a director|
00001fb0  79 2e 20 46 69 6c 69 6e  67 20 73 79 73 74 65 6d  |y. Filing system|
00001fc0  20 6d 6f 64 75 6c 65 73  20 75 73 65 20 3c 53 65  | modules use <Se|
00001fd0  72 76 69 63 65 5f 53 74  61 72 74 46 69 6c 65 72  |rvice_StartFiler|
00001fe0  3d 3e 4f 53 3a 53 65 72  76 69 63 65 5f 34 42 3e  |=>OS:Service_4B>|
00001ff0  20 74 6f 20 72 65 63 6f  72 64 20 74 68 65 20 46  | to record the F|
00002000  69 6c 65 72 27 73 20 74  61 73 6b 20 68 61 6e 64  |iler's task hand|
00002010  6c 65 20 61 6e 64 20 68  65 6e 63 65 20 64 6f 20  |le and hence do |
00002020  6e 6f 74 20 75 73 65 20  61 20 62 72 6f 61 64 63  |not use a broadc|
00002030  61 73 74 20 6d 65 73 73  61 67 65 2e 0a 00 00 00  |ast message.....|
00002040  44 41 54 41 44 01 00 00  4e 6f 74 69 66 79 20 28  |DATAD...Notify (|
00002050  26 34 30 30 34 30 29 0a  23 50 61 72 65 6e 74 20  |&40040).#Parent |
00002060  4d 53 47 5f 0a 2b 20 32  30 09 53 65 6e 64 69 6e  |MSG_.+ 20.Sendin|
00002070  67 20 73 74 61 74 69 6f  6e 20 6e 75 6d 62 65 72  |g station number|
00002080  0a 2b 20 32 31 09 49 74  73 20 6e 65 74 77 6f 72  |.+ 21.Its networ|
00002090  6b 20 6e 75 6d 62 65 72  0a 2b 20 32 32 09 46 69  |k number.+ 22.Fi|
000020a0  76 65 2d 62 79 74 65 20  72 65 61 6c 20 74 69 6d  |ve-byte real tim|
000020b0  65 20 6f 6e 20 72 65 63  69 65 70 74 0a 2b 20 32  |e on reciept.+ 2|
000020c0  37 09 4d 65 73 73 61 67  65 0a 0a 54 68 69 73 20  |7.Message..This |
000020d0  6d 65 73 73 61 67 65 20  69 73 20 62 72 6f 61 64  |message is broad|
000020e0  63 61 73 74 65 64 20 62  79 20 74 68 65 20 4e 65  |casted by the Ne|
000020f0  74 46 69 6c 65 72 20 74  6f 20 65 6e 61 62 6c 65  |tFiler to enable|
00002100  20 73 6f 6d 65 20 74 61  73 6b 20 74 6f 20 64 69  | some task to di|
00002110  73 70 6c 61 79 20 61 20  2a 4e 6f 74 69 66 79 20  |splay a *Notify |
00002120  63 6f 6d 6d 61 6e 64 2e  20 49 66 20 6e 6f 20 6f  |command. If no o|
00002130  6e 65 20 61 63 6b 6e 6f  77 6c 65 64 67 65 73 20  |ne acknowledges |
00002140  74 68 65 20 6d 65 73 73  61 67 65 2c 20 74 68 65  |the message, the|
00002150  20 4e 65 74 46 69 6c 65  72 20 77 69 6c 6c 20 64  | NetFiler will d|
00002160  69 73 70 6c 61 79 20 69  74 20 75 73 69 6e 67 20  |isplay it using |
00002170  3c 57 69 6d 70 5f 52 65  70 6f 72 74 45 72 72 6f  |<Wimp_ReportErro|
00002180  72 3e 2e 0a 44 41 54 41  a9 02 00 00 4d 65 73 73  |r>..DATA....Mess|
00002190  61 67 65 5f 4d 65 6e 75  57 61 72 6e 69 6e 67 20  |age_MenuWarning |
000021a0  20 28 26 34 30 30 43 30  29 0a 23 50 61 72 65 6e  | (&400C0).#Paren|
000021b0  74 20 4d 53 47 5f 0a 2b  20 32 30 09 27 53 75 62  |t MSG_.+ 20.'Sub|
000021c0  6d 65 6e 75 20 70 6f 69  6e 74 65 72 27 20 66 72  |menu pointer' fr|
000021d0  6f 6d 20 6d 65 6e 75 20  69 74 65 6d 0a 2b 20 32  |om menu item.+ 2|
000021e0  34 09 78 20 63 6f 6f 72  64 20 6f 66 20 74 6f 70  |4.x coord of top|
000021f0  20 6c 65 66 74 20 6e 65  77 20 73 75 62 6d 65 6e  | left new submen|
00002200  75 0a 2b 20 32 38 09 79  20 63 6f 6f 72 64 20 6f  |u.+ 28.y coord o|
00002210  66 20 74 6f 70 20 6c 65  66 74 20 6e 65 77 20 73  |f top left new s|
00002220  75 62 6d 65 6e 75 0a 2b  20 33 32 09 53 65 6c 65  |ubmenu.+ 32.Sele|
00002230  63 74 69 6f 6e 20 6c 69  73 74 20 28 61 73 20 69  |ction list (as i|
00002240  6e 20 3c 4d 65 6e 75 53  65 6c 65 63 74 69 6f 6e  |n <MenuSelection|
00002250  3d 3e 77 69 6d 70 5f 70  6f 6c 6c 39 3e 29 0a 0a  |=>wimp_poll9>)..|
00002260  59 6f 75 20 72 65 63 65  69 76 65 20 74 68 69 73  |You receive this|
00002270  20 6d 65 73 73 61 67 65  20 77 68 65 6e 20 70 6f  | message when po|
00002280  69 6e 74 65 72 20 6d 6f  76 65 73 20 6f 76 65 72  |inter moves over|
00002290  20 74 68 65 20 73 75 62  6d 65 6e 75 20 61 72 72  | the submenu arr|
000022a0  6f 77 20 69 6e 20 61 20  6d 65 6e 75 20 65 6e 74  |ow in a menu ent|
000022b0  72 79 20 77 69 74 68 20  74 68 65 20 27 67 65 6e  |ry with the 'gen|
000022c0  65 72 61 74 65 20 6d 65  73 73 61 67 65 27 20 62  |erate message' b|
000022d0  69 74 20 73 65 74 2e 0a  0a 59 6f 75 20 63 61 6e  |it set...You can|
000022e0  20 75 73 65 20 74 68 65  20 27 73 75 62 6d 65 6e  | use the 'submen|
000022f0  75 20 70 6f 69 6e 74 65  72 27 20 61 6e 64 2f 6f  |u pointer' and/o|
00002300  72 20 74 68 65 20 73 65  6c 65 63 74 69 6f 6e 20  |r the selection |
00002310  6c 69 73 74 2c 20 74 6f  20 64 65 63 69 64 65 20  |list, to decide |
00002320  77 68 69 63 68 20 77 69  6e 64 6f 77 20 6f 72 20  |which window or |
00002330  6d 65 6e 75 20 74 6f 20  6f 70 65 6e 20 77 69 74  |menu to open wit|
00002340  68 20 3c 57 69 6d 70 5f  43 72 65 61 74 65 53 75  |h <Wimp_CreateSu|
00002350  62 4d 65 6e 75 3e 2e 20  54 68 65 20 73 75 62 6d  |bMenu>. The subm|
00002360  65 6e 75 20 79 6f 75 20  61 63 74 75 61 6c 6c 79  |enu you actually|
00002370  20 6f 70 65 6e 20 64 6f  65 73 6e 27 74 20 68 61  | open doesn't ha|
00002380  76 65 20 74 6f 20 62 65  20 74 68 65 20 73 61 6d  |ve to be the sam|
00002390  65 20 61 73 20 74 68 65  20 6f 6e 65 20 70 61 73  |e as the one pas|
000023a0  73 65 64 20 74 6f 20 79  6f 75 20 61 74 20 2b 32  |sed to you at +2|
000023b0  30 2e 20 48 6f 77 65 76  65 72 2c 20 69 66 20 79  |0. However, if y|
000023c0  6f 75 20 77 69 73 68 20  74 68 65 20 73 75 62 6d  |ou wish the subm|
000023d0  65 6e 75 20 74 6f 20 62  65 20 72 65 2d 6f 70 65  |enu to be re-ope|
000023e0  6e 65 64 20 77 68 65 6e  20 74 68 65 20 57 69 6d  |ned when the Wim|
000023f0  70 20 72 65 63 72 65 61  74 65 73 20 74 68 65 20  |p recreates the |
00002400  6d 65 6e 75 20 79 6f 75  20 73 68 6f 75 6c 64 20  |menu you should |
00002410  73 74 6f 72 65 20 74 68  65 20 6e 65 77 20 68 61  |store the new ha|
00002420  6e 64 6c 65 20 61 74 20  2b 32 30 2e 0a 00 00 00  |ndle at +20.....|
00002430  44 41 54 41 87 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00002440  4d 6f 64 65 43 68 61 6e  67 65 20 28 26 34 30 30  |ModeChange (&400|
00002450  43 31 29 0a 3c 57 69 6d  70 5f 53 65 74 4d 6f 64  |C1).<Wimp_SetMod|
00002460  65 3e 20 63 61 75 73 65  73 20 74 68 69 73 20 6d  |e> causes this m|
00002470  65 73 73 61 67 65 20 74  6f 20 62 65 20 62 72 6f  |essage to be bro|
00002480  61 64 63 61 73 74 65 64  2e 20 59 6f 75 20 73 68  |adcasted. You sh|
00002490  6f 75 6c 64 20 2a 6e 6f  74 2a 20 61 63 6e 6f 77  |ould *not* acnow|
000024a0  6c 65 64 67 65 20 74 68  69 73 20 6d 65 73 73 61  |ledge this messa|
000024b0  67 65 2e 0a 0a 41 66 74  65 72 20 73 65 6e 64 69  |ge...After sendi|
000024c0  6e 67 20 74 68 69 73 20  6d 65 73 73 61 67 65 2c  |ng this message,|
000024d0  20 74 68 65 20 57 69 6d  70 20 73 65 6e 64 73 20  | the Wimp sends |
000024e0  61 6e 20 4f 70 65 6e 5f  57 69 6e 64 6f 77 5f 52  |an Open_Window_R|
000024f0  65 71 75 65 73 74 20 65  76 65 6e 74 20 66 6f 72  |equest event for|
00002500  20 65 61 63 68 20 77 69  6e 64 6f 77 2e 0a 0a 59  | each window...Y|
00002510  6f 75 20 6d 75 73 74 20  6e 6f 74 20 64 65 6c 65  |ou must not dele|
00002520  74 65 20 61 6e 79 20 77  69 6e 64 6f 77 2e 20 49  |te any window. I|
00002530  66 20 79 6f 75 20 77 61  6e 74 20 74 6f 20 64 65  |f you want to de|
00002540  6c 65 74 65 20 61 20 77  69 6e 64 6f 77 2c 20 74  |lete a window, t|
00002550  68 65 6e 20 6a 75 73 74  20 6d 61 72 6b 20 69 74  |hen just mark it|
00002560  20 74 6f 20 62 65 20 64  65 6c 65 74 65 64 2c 20  | to be deleted, |
00002570  61 6e 64 20 64 6f 20 74  68 65 20 64 65 65 64 20  |and do the deed |
00002580  77 68 65 6e 20 79 6f 75  20 72 65 63 65 69 76 65  |when you receive|
00002590  20 74 68 65 20 3c 4f 70  65 6e 20 77 69 6e 64 6f  | the <Open windo|
000025a0  77 20 72 65 71 75 65 73  74 3d 3e 77 69 6d 70 5f  |w request=>wimp_|
000025b0  70 6f 6c 6c 32 3e 2e 00  44 41 54 41 53 01 00 00  |poll2>..DATAS...|
000025c0  4d 65 73 73 61 67 65 5f  54 61 73 6b 49 6e 69 74  |Message_TaskInit|
000025d0  69 61 6c 69 73 65 20 28  26 34 30 30 43 32 29 0a  |ialise (&400C2).|
000025e0  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 2b 20 34  |#Parent MSG_.+ 4|
000025f0  09 74 61 73 6b 20 68 61  6e 64 6c 65 0a 2b 20 32  |.task handle.+ 2|
00002600  30 09 3c 63 75 72 72 65  6e 74 6c 79 20 61 63 74  |0.<currently act|
00002610  69 76 65 20 6f 62 6a 65  63 74 20 70 6f 69 6e 74  |ive object point|
00002620  65 72 3d 3e 4f 53 3a 4f  53 5f 68 61 6e 64 6c 65  |er=>OS:OS_handle|
00002630  72 73 5f 63 61 6f 3e 0a  2b 20 32 34 09 73 6c 6f  |rs_cao>.+ 24.slo|
00002640  74 20 73 69 7a 65 0a 2b  20 32 38 09 54 61 73 6b  |t size.+ 28.Task|
00002650  20 6e 61 6d 65 20 67 69  76 65 6e 20 74 6f 20 57  | name given to W|
00002660  69 6d 70 5f 49 6e 69 74  69 61 6c 69 73 65 2c 20  |imp_Initialise, |
00002670  2a 63 6f 6e 74 72 6f 6c  2a 20 74 65 72 6d 69 6e  |*control* termin|
00002680  61 74 65 64 0a 0a 54 68  69 73 20 6d 65 73 73 61  |ated..This messa|
00002690  67 65 20 69 73 20 62 72  6f 61 64 63 61 73 74 20  |ge is broadcast |
000026a0  77 68 65 6e 20 61 20 74  61 73 6b 20 63 61 6c 6c  |when a task call|
000026b0  73 20 3c 57 69 6d 70 5f  49 6e 69 74 69 61 6c 69  |s <Wimp_Initiali|
000026c0  73 65 3e 2e 20 54 68 65  20 66 69 65 6c 64 73 20  |se>. The fields |
000026d0  61 72 65 20 73 65 74 20  73 6f 20 74 68 61 74 20  |are set so that |
000026e0  69 74 20 61 70 70 65 61  72 73 20 74 6f 20 6f 72  |it appears to or|
000026f0  69 67 69 6e 61 74 65 20  66 72 6f 6d 20 74 68 65  |iginate from the|
00002700  20 6e 65 77 20 74 61 73  6b 2e 0a 00 44 41 54 41  | new task...DATA|
00002710  cb 00 00 00 4d 65 73 73  61 67 65 5f 54 61 73 6b  |....Message_Task|
00002720  43 6c 6f 73 65 44 6f 77  6e 20 28 26 34 30 30 43  |CloseDown (&400C|
00002730  33 29 0a 23 50 61 72 65  6e 74 20 4d 53 47 5f 0a  |3).#Parent MSG_.|
00002740  2b 20 34 09 54 61 73 6b  20 68 61 6e 64 6c 65 0a  |+ 4.Task handle.|
00002750  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 69 73  |.This message is|
00002760  20 62 72 6f 61 64 63 61  73 74 20 77 68 65 6e 20  | broadcast when |
00002770  61 20 74 61 73 6b 20 63  61 6c 6c 73 20 3c 57 69  |a task calls <Wi|
00002780  6d 70 5f 43 6c 6f 73 65  44 6f 77 6e 3e 2e 20 54  |mp_CloseDown>. T|
00002790  68 65 20 66 69 65 6c 64  73 20 61 72 65 20 73 65  |he fields are se|
000027a0  74 20 73 6f 20 74 68 61  74 20 69 74 20 61 70 70  |t so that it app|
000027b0  65 61 72 73 20 74 6f 20  6f 72 69 67 69 6e 61 74  |ears to originat|
000027c0  65 20 66 72 6f 6d 20 74  68 65 20 64 79 69 6e 67  |e from the dying|
000027d0  20 74 61 73 6b 2e 0a 00  44 41 54 41 1a 01 00 00  | task...DATA....|
000027e0  53 6c 6f 74 53 69 7a 65  20 28 26 34 30 30 43 34  |SlotSize (&400C4|
000027f0  29 0a 23 50 61 72 65 6e  74 20 4d 53 47 5f 0a 2b  |).#Parent MSG_.+|
00002800  20 34 09 54 61 73 6b 20  48 61 6e 64 6c 65 20 77  | 4.Task Handle w|
00002810  68 69 63 68 20 6f 77 6e  73 20 73 6c 6f 74 0a 2b  |hich owns slot.+|
00002820  20 32 30 09 4e 65 77 20  73 6c 6f 74 73 69 7a 65  | 20.New slotsize|
00002830  0a 2b 20 32 34 09 4e 65  77 20 73 69 7a 65 20 6f  |.+ 24.New size o|
00002840  66 20 74 68 65 20 4e 65  78 74 20 73 6c 6f 74 0a  |f the Next slot.|
00002850  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 69 73  |.This message is|
00002860  20 62 72 6f 61 64 63 61  73 74 20 61 66 74 65 72  | broadcast after|
00002870  20 3c 57 69 6d 70 5f 53  6c 6f 74 53 69 7a 65 3e  | <Wimp_SlotSize>|
00002880  20 69 73 20 63 61 6c 6c  65 64 2e 20 49 74 20 69  | is called. It i|
00002890  73 20 6d 61 69 6e 6c 79  20 75 73 65 64 20 62 79  |s mainly used by|
000028a0  20 74 68 65 20 74 61 73  6b 20 6d 61 6e 61 67 65  | the task manage|
000028b0  72 20 74 6f 20 75 70 64  61 74 65 20 69 74 73 20  |r to update its |
000028c0  64 69 73 70 6c 61 79 2e  20 54 68 69 73 20 6d 65  |display. This me|
000028d0  73 73 61 67 65 20 73 68  6f 75 6c 64 20 6e 6f 74  |ssage should not|
000028e0  20 62 65 20 61 63 6b 6e  6f 77 6c 65 64 67 65 64  | be acknowledged|
000028f0  2e 0a 00 00 44 41 54 41  81 02 00 00 53 65 74 53  |....DATA....SetS|
00002900  6c 6f 74 20 28 26 34 30  30 43 35 29 0a 23 50 61  |lot (&400C5).#Pa|
00002910  72 65 6e 74 20 4d 53 47  5f 0a 2b 20 32 30 09 4e  |rent MSG_.+ 20.N|
00002920  65 77 20 73 6c 6f 74 73  69 7a 65 0a 2b 20 32 34  |ew slotsize.+ 24|
00002930  09 4f 77 6e 65 72 27 73  20 74 61 73 6b 68 61 6e  |.Owner's taskhan|
00002940  64 6c 65 0a 0a 54 68 69  73 20 6d 65 73 73 61 67  |dle..This messag|
00002950  65 20 69 73 20 62 72 6f  61 64 63 61 73 74 20 77  |e is broadcast w|
00002960  68 65 6e 20 74 68 65 20  75 73 65 72 20 74 72 69  |hen the user tri|
00002970  65 73 20 74 6f 20 61 6c  74 65 72 20 61 20 74 61  |es to alter a ta|
00002980  73 6b 27 73 20 73 6c 6f  74 20 73 69 7a 65 20 62  |sk's slot size b|
00002990  79 20 64 72 61 67 67 69  6e 67 20 74 68 65 20 22  |y dragging the "|
000029a0  6d 65 6d 6f 72 79 62 61  72 22 20 69 6e 20 74 68  |memorybar" in th|
000029b0  65 20 74 61 73 6b 20 6d  61 6e 61 67 65 72 2e 20  |e task manager. |
000029c0  49 66 20 61 20 74 61 73  6b 20 63 61 6e 20 63 6f  |If a task can co|
000029d0  70 65 20 77 69 74 68 20  74 68 69 73 2c 20 69 74  |pe with this, it|
000029e0  20 73 68 6f 75 6c 64 20  66 69 72 73 74 20 63 68  | should first ch|
000029f0  65 63 6b 20 74 68 65 20  74 61 73 6b 68 61 6e 64  |eck the taskhand|
00002a00  6c 65 2c 20 61 63 6b 6e  6f 77 6c 65 64 67 65 20  |le, acknowledge |
00002a10  74 68 65 20 6d 65 73 73  61 67 65 20 61 6e 64 20  |the message and |
00002a20  74 68 65 6e 20 63 61 6c  6c 20 3c 57 69 6d 70 5f  |then call <Wimp_|
00002a30  53 6c 6f 74 53 69 7a 65  3e 2e 0a 0a 54 68 69 73  |SlotSize>...This|
00002a40  20 6d 65 73 73 61 67 65  20 69 73 20 61 6c 73 6f  | message is also|
00002a50  20 73 65 6e 74 20 62 79  20 74 68 65 20 74 61 73  | sent by the tas|
00002a60  6b 20 6d 61 6e 61 67 65  72 20 77 68 65 6e 20 74  |k manager when t|
00002a70  68 65 20 74 61 73 6b 20  69 73 20 73 74 61 72 74  |he task is start|
00002a80  65 64 2e 20 49 66 20 74  68 69 73 2c 20 6f 72 20  |ed. If this, or |
00002a90  61 6e 79 20 6c 61 74 65  72 20 6d 65 73 73 61 67  |any later messag|
00002aa0  65 2c 20 69 73 20 2a 6e  6f 74 2a 20 61 63 6b 6e  |e, is *not* ackn|
00002ab0  6f 77 6c 65 64 67 65 64  2c 20 74 68 65 20 74 61  |owledged, the ta|
00002ac0  73 6b 20 77 69 6c 6c 20  67 65 74 20 61 20 67 72  |sk will get a gr|
00002ad0  65 65 6e 20 6d 65 6d 6f  72 79 62 61 72 20 69 6e  |een memorybar in|
00002ae0  20 74 68 65 20 74 61 73  6b 20 6d 61 6e 61 67 65  | the task manage|
00002af0  72 20 28 69 6e 73 74 65  61 64 20 6f 66 20 61 20  |r (instead of a |
00002b00  72 65 64 20 6f 6e 65 29  20 61 6e 64 20 77 69 6c  |red one) and wil|
00002b10  6c 20 6e 6f 74 20 72 65  63 65 69 76 65 20 74 68  |l not receive th|
00002b20  69 73 20 6d 65 73 73 61  67 65 20 61 67 61 69 6e  |is message again|
00002b30  3b 20 69 74 20 77 69 6c  6c 20 6e 6f 74 20 62 65  |; it will not be|
00002b40  20 70 6f 73 73 69 62 6c  65 20 66 6f 72 20 74 68  | possible for th|
00002b50  65 20 75 73 65 72 20 74  6f 20 61 6c 74 65 72 20  |e user to alter |
00002b60  74 68 65 20 74 61 73 6b  27 73 20 73 6c 6f 74 73  |the task's slots|
00002b70  69 7a 65 2e 0a 00 00 00  44 41 54 41 64 01 00 00  |ize.....DATAd...|
00002b80  54 61 73 6b 4e 61 6d 65  52 71 20 28 26 34 30 30  |TaskNameRq (&400|
00002b90  43 36 29 0a 23 50 61 72  65 6e 74 20 4d 53 47 5f  |C6).#Parent MSG_|
00002ba0  0a 2b 20 32 30 09 48 61  6e 64 6c 65 20 6f 66 20  |.+ 20.Handle of |
00002bb0  6f 74 68 65 72 20 74 61  73 6b 0a 0a 54 68 69 73  |other task..This|
00002bc0  20 6d 65 73 73 61 67 65  20 63 61 6e 20 62 65 20  | message can be |
00002bd0  75 73 65 64 20 69 66 20  79 6f 75 72 20 74 61 73  |used if your tas|
00002be0  6b 20 77 61 6e 74 20 74  6f 20 66 69 6e 64 20 6f  |k want to find o|
00002bf0  75 74 20 74 68 65 20 6e  61 6d 65 20 6f 66 20 61  |ut the name of a|
00002c00  6e 6f 74 68 65 72 20 74  61 73 6b 2e 20 42 72 6f  |nother task. Bro|
00002c10  61 64 63 61 73 74 20 74  68 69 73 20 6d 65 73 73  |adcast this mess|
00002c20  61 67 65 20 77 69 74 68  20 63 6f 72 72 65 63 74  |age with correct|
00002c30  20 68 61 6e 64 6c 65 2c  20 61 6e 64 20 74 68 65  | handle, and the|
00002c40  20 74 61 73 6b 20 6d 61  6d 61 67 65 72 20 77 69  | task mamager wi|
00002c50  6c 6c 20 72 65 73 70 6f  6e 64 20 77 69 74 68 20  |ll respond with |
00002c60  61 20 3c 54 61 73 6b 4e  61 6d 65 49 73 3d 3e 4d  |a <TaskNameIs=>M|
00002c70  73 67 5f 34 30 30 43 37  3e 20 6d 65 73 73 61 67  |sg_400C7> messag|
00002c80  65 2e 20 52 49 53 43 20  4f 53 20 33 20 70 72 6f  |e. RISC OS 3 pro|
00002c90  76 69 64 65 73 20 3c 54  61 73 6b 4d 61 6e 61 67  |vides <TaskManag|
00002ca0  65 72 5f 54 61 73 6b 4e  61 6d 65 46 72 6f 6d 48  |er_TaskNameFromH|
00002cb0  61 6e 64 6c 65 3e 2c 20  77 68 69 63 68 20 73 68  |andle>, which sh|
00002cc0  6f 75 6c 64 20 62 65 20  75 73 65 64 20 69 6e 20  |ould be used in |
00002cd0  70 72 65 66 65 72 65 6e  63 65 2e 0a 44 41 54 41  |preference..DATA|
00002ce0  15 01 00 00 54 61 73 6b  4e 61 6d 65 49 73 20 28  |....TaskNameIs (|
00002cf0  26 34 30 30 43 37 29 0a  23 50 61 72 65 6e 74 20  |&400C7).#Parent |
00002d00  4d 53 47 5f 0a 2b 20 32  30 09 48 61 6e 64 6c 65  |MSG_.+ 20.Handle|
00002d10  20 6f 66 20 74 61 73 6b  0a 2b 20 32 34 09 54 61  | of task.+ 24.Ta|
00002d20  73 6b 27 73 20 73 6c 6f  74 73 69 7a 65 0a 2b 20  |sk's slotsize.+ |
00002d30  32 38 09 54 61 73 6b 6e  61 6d 65 0a 0a 54 68 69  |28.Taskname..Thi|
00002d40  73 20 6d 65 73 73 61 67  65 20 69 73 20 73 65 6e  |s message is sen|
00002d50  74 20 62 79 20 74 68 65  20 74 61 73 6b 20 6d 61  |t by the task ma|
00002d60  6e 61 67 65 72 20 69 6e  20 72 65 73 70 6f 6e 73  |nager in respons|
00002d70  65 20 74 6f 20 61 20 3c  54 61 73 6b 4e 61 6d 65  |e to a <TaskName|
00002d80  52 71 3d 3e 4d 73 67 5f  34 30 30 43 36 3e 20 6d  |Rq=>Msg_400C6> m|
00002d90  65 73 73 61 67 65 2e 20  52 49 53 43 20 4f 53 20  |essage. RISC OS |
00002da0  33 20 70 72 6f 76 69 64  65 73 20 3c 54 61 73 6b  |3 provides <Task|
00002db0  4d 61 6e 61 67 65 72 5f  54 61 73 6b 4e 61 6d 65  |Manager_TaskName|
00002dc0  46 72 6f 6d 48 61 6e 64  6c 65 3e 2c 20 77 68 69  |FromHandle>, whi|
00002dd0  63 68 20 73 68 6f 75 6c  64 20 62 65 20 75 73 65  |ch should be use|
00002de0  64 20 69 6e 20 70 72 65  66 65 72 65 6e 63 65 2e  |d in preference.|
00002df0  0a 00 00 00 44 41 54 41  b9 00 00 00 4d 65 73 73  |....DATA....Mess|
00002e00  61 67 65 5f 4d 65 6e 75  73 44 65 6c 65 74 65 64  |age_MenusDeleted|
00002e10  20 20 28 26 34 30 30 43  39 29 0a 23 50 61 72 65  |  (&400C9).#Pare|
00002e20  6e 74 20 4d 53 47 5f 0a  2b 20 32 30 09 50 6f 69  |nt MSG_.+ 20.Poi|
00002e30  6e 74 65 72 20 74 6f 20  6d 65 6e 75 20 62 6c 6f  |nter to menu blo|
00002e40  63 6b 20 28 3c 57 69 6d  70 5f 43 72 65 61 74 65  |ck (<Wimp_Create|
00002e50  4d 65 6e 75 3e 29 0a 0a  54 68 69 73 20 6d 65 73  |Menu>)..This mes|
00002e60  73 61 67 65 20 69 73 20  73 65 6e 74 20 77 68 65  |sage is sent whe|
00002e70  6e 20 79 6f 75 72 20 6d  65 6e 75 20 77 61 73 20  |n your menu was |
00002e80  63 6c 6f 73 65 64 20 77  69 74 68 6f 75 74 20 61  |closed without a|
00002e90  20 73 65 6c 65 63 74 69  6f 6e 20 68 61 76 69 6e  | selection havin|
00002ea0  67 20 62 65 65 6e 20 6d  61 64 65 2e 20 00 00 00  |g been made. ...|
00002eb0  44 41 54 41 07 01 00 00  4d 65 73 73 61 67 65 20  |DATA....Message |
00002ec0  46 69 6c 65 72 43 6c 6f  73 65 44 69 72 20 28 26  |FilerCloseDir (&|
00002ed0  34 30 31 29 0a 23 50 61  72 65 6e 74 20 4d 53 47  |401).#Parent MSG|
00002ee0  5f 0a 2b 20 32 30 09 3c  66 69 6c 69 6e 67 20 73  |_.+ 20.<filing s|
00002ef0  79 73 74 65 6d 20 6e 75  6d 62 65 72 3d 3e 4f 53  |ystem number=>OS|
00002f00  3a 66 73 79 73 5f 69 64  65 6e 74 3e 0a 2b 20 32  |:fsys_ident>.+ 2|
00002f10  34 09 66 6c 61 67 2c 20  62 69 74 20 30 20 73 65  |4.flag, bit 0 se|
00002f20  74 20 74 6f 20 70 72 65  76 65 6e 74 20 63 61 6e  |t to prevent can|
00002f30  6f 6e 69 63 61 6c 69 73  61 74 69 6f 6e 20 6f 66  |onicalisation of|
00002f40  20 6e 61 6d 65 20 62 65  66 6f 72 65 20 75 73 69  | name before usi|
00002f50  6e 67 2e 0a 2b 20 32 38  09 6e 61 6d 65 20 6f 66  |ng..+ 28.name of|
00002f60  20 64 69 72 65 63 74 6f  72 79 2c 20 7a 65 72 6f  | directory, zero|
00002f70  20 74 65 72 6d 69 6e 61  74 65 64 2e 0a 0a 41 6c  | terminated...Al|
00002f80  6c 20 64 69 72 65 63 74  6f 72 69 65 73 20 73 74  |l directories st|
00002f90  61 72 74 69 6e 67 20 77  69 74 68 20 67 69 76 65  |arting with give|
00002fa0  6e 20 6e 61 6d 65 20 77  69 6c 6c 20 62 65 20 63  |n name will be c|
00002fb0  6c 6f 73 65 64 2e 0a 00  44 41 54 41 6b 00 00 00  |losed...DATAk...|
00002fc0  44 44 45 55 74 69 6c 73  5f 54 68 72 6f 77 62 61  |DDEUtils_Throwba|
00002fd0  63 6b 53 74 61 72 74 20  20 28 26 34 32 35 38 30  |ckStart  (&42580|
00002fe0  29 0a 23 50 61 72 65 6e  74 20 4d 53 47 5f 0a 49  |).#Parent MSG_.I|
00002ff0  6e 69 74 69 61 74 65 73  20 61 20 74 68 72 6f 77  |nitiates a throw|
00003000  62 61 63 6b 20 73 65 73  73 69 6f 6e 20 66 6f 72  |back session for|
00003010  20 74 68 65 20 63 75 72  72 65 6e 74 20 74 61 73  | the current tas|
00003020  6b 2e 0a 00 44 41 54 41  46 00 00 00 44 44 45 55  |k...DATAF...DDEU|
00003030  74 69 6c 73 5f 50 72 6f  63 65 73 73 69 6e 67 46  |tils_ProcessingF|
00003040  69 6c 65 20 20 28 26 34  32 35 38 31 29 0a 23 50  |ile  (&42581).#P|
00003050  61 72 65 6e 74 20 4d 53  47 5f 0a 20 2b 20 32 30  |arent MSG_. + 20|
00003060  09 46 69 6c 65 6e 61 6d  65 0a 00 00 44 41 54 41  |.Filename...DATA|
00003070  3e 00 00 00 44 44 45 55  74 69 6c 73 5f 45 72 72  |>...DDEUtils_Err|
00003080  6f 72 73 49 6e 20 20 28  26 34 32 35 38 32 29 0a  |orsIn  (&42582).|
00003090  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 2b 20 32  |#Parent MSG_.+ 2|
000030a0  30 09 46 69 6c 65 6e 61  6d 65 00 00 44 41 54 41  |0.Filename..DATA|
000030b0  7a 00 00 00 44 44 45 55  74 69 6c 73 5f 45 72 72  |z...DDEUtils_Err|
000030c0  6f 72 44 65 74 61 69 6c  73 20 20 28 26 34 32 35  |orDetails  (&425|
000030d0  38 33 29 0a 23 50 61 72  65 6e 74 20 4d 53 47 5f  |83).#Parent MSG_|
000030e0  0a 2b 20 32 30 09 4c 69  6e 65 6e 75 6d 62 65 72  |.+ 20.Linenumber|
000030f0  0a 2b 20 32 34 09 30 2c  31 2c 32 20 66 6f 72 20  |.+ 24.0,1,2 for |
00003100  77 61 72 6e 69 6e 67 2c  65 72 72 6f 72 2c 73 65  |warning,error,se|
00003110  72 69 6f 75 73 0a 2b 20  32 38 09 44 65 73 63 72  |rious.+ 28.Descr|
00003120  69 70 74 69 6f 6e 00 00  44 41 54 41 7e 00 00 00  |iption..DATA~...|
00003130  44 44 45 55 74 69 6c 73  5f 54 68 72 6f 77 62 61  |DDEUtils_Throwba|
00003140  63 6b 45 6e 64 20 20 28  26 34 32 35 38 34 29 0a  |ckEnd  (&42584).|
00003150  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 54 68 69  |#Parent MSG_.Thi|
00003160  73 20 6d 65 73 73 61 67  65 20 6e 6f 74 69 66 69  |s message notifi|
00003170  65 73 20 74 68 65 20 74  68 72 6f 77 62 61 63 6b  |es the throwback|
00003180  20 73 65 72 76 65 72 20  74 68 61 74 20 74 68 65  | server that the|
00003190  20 74 68 72 6f 77 62 61  63 6b 20 68 61 73 20 65  | throwback has e|
000031a0  6e 64 65 64 2e 0a 00 00  44 41 54 41 42 00 00 00  |nded....DATAB...|
000031b0  44 44 45 55 74 69 6c 73  5f 49 6e 66 6f 46 6f 72  |DDEUtils_InfoFor|
000031c0  46 69 6c 65 20 20 28 26  34 32 35 38 35 29 0a 23  |File  (&42585).#|
000031d0  50 61 72 65 6e 74 20 4d  53 47 5f 0a 2b 20 32 30  |Parent MSG_.+ 20|
000031e0  09 46 69 6c 65 6e 61 6d  65 0a 00 00 44 41 54 41  |.Filename...DATA|
000031f0  5c 00 00 00 44 44 45 55  74 69 6c 73 5f 49 6e 66  |\...DDEUtils_Inf|
00003200  6f 44 65 74 61 69 6c 73  20 20 28 26 34 32 35 38  |oDetails  (&4258|
00003210  36 29 0a 23 50 61 72 65  6e 74 20 4d 53 47 5f 0a  |6).#Parent MSG_.|
00003220  2b 20 32 30 09 4c 69 6e  65 6e 75 6d 62 65 72 0a  |+ 20.Linenumber.|
00003230  2b 20 32 34 09 30 0a 2b  20 32 38 09 44 65 73 63  |+ 24.0.+ 28.Desc|
00003240  72 69 70 74 69 6f 6e 0a  44 41 54 41 31 02 00 00  |ription.DATA1...|
00003250  4d 65 73 73 61 67 65 5f  45 64 69 74 52 71 20 20  |Message_EditRq  |
00003260  28 26 34 35 44 38 30 29  0a 23 50 61 72 65 6e 74  |(&45D80).#Parent|
00003270  20 4d 53 47 5f 0a 2b 20  32 30 09 3c 44 61 74 61  | MSG_.+ 20.<Data|
00003280  20 74 79 70 65 20 77 6f  72 64 3d 3e 4d 73 67 5f  | type word=>Msg_|
00003290  45 78 74 45 64 69 74 44  61 74 61 74 79 70 65 73  |ExtEditDatatypes|
000032a0  3e 20 28 66 69 6c 65 74  79 70 65 20 2b 20 73 75  |> (filetype + su|
000032b0  62 74 79 70 65 29 0a 2b  20 32 34 09 3c 4a 6f 62  |btype).+ 24.<Job|
000032c0  20 68 61 6e 64 6c 65 3d  3e 4d 73 67 5f 45 78 74  | handle=>Msg_Ext|
000032d0  45 64 69 74 4a 6f 62 48  61 6e 64 6c 65 3e 0a 2b  |EditJobHandle>.+|
000032e0  20 32 38 09 3c 46 6c 61  67 20 77 6f 72 64 3d 3e  | 28.<Flag word=>|
000032f0  4d 73 67 5f 45 78 74 45  64 69 74 46 6c 61 67 73  |Msg_ExtEditFlags|
00003300  3e 0a 2b 20 33 32 09 4e  61 6d 65 20 6f 66 20 70  |>.+ 32.Name of p|
00003310  61 72 65 6e 74 09 28 6d  61 78 20 32 30 20 63 68  |arent.(max 20 ch|
00003320  61 72 73 20 69 6e 63 6c  75 64 69 6e 67 20 7a 65  |ars including ze|
00003330  72 6f 29 0a 2b 20 35 32  09 4e 61 6d 65 20 6f 66  |ro).+ 52.Name of|
00003340  20 66 69 6c 65 09 28 6d  61 78 20 32 30 20 63 68  | file.(max 20 ch|
00003350  61 72 73 20 69 6e 63 6c  75 64 69 6e 67 20 7a 65  |ars including ze|
00003360  72 6f 29 0a 0a 54 68 69  73 20 6d 65 73 73 61 67  |ro)..This messag|
00003370  65 20 69 73 20 62 72 6f  61 64 63 61 73 74 65 64  |e is broadcasted|
00003380  20 62 79 20 61 20 22 63  6c 69 65 6e 74 22 20 77  | by a "client" w|
00003390  68 65 6e 20 69 74 20 77  69 73 68 65 73 20 73 6f  |hen it wishes so|
000033a0  6d 65 6f 6e 65 20 74 6f  20 65 64 69 74 20 69 74  |meone to edit it|
000033b0  73 20 64 61 74 61 2e 20  49 66 20 22 65 64 69 74  |s data. If "edit|
000033c0  6f 72 22 20 72 65 63 6f  67 6e 69 73 65 73 20 66  |or" recognises f|
000033d0  69 6c 65 74 79 70 65 20  61 6e 64 20 73 75 62 74  |iletype and subt|
000033e0  79 70 65 2c 20 69 74 20  73 68 6f 75 6c 64 20 61  |ype, it should a|
000033f0  63 6b 6e 6f 77 6c 65 64  67 65 20 74 68 69 73 20  |cknowledge this |
00003400  6d 65 73 73 61 67 65 20  62 79 20 73 65 6e 64 69  |message by sendi|
00003410  6e 67 20 61 6e 20 3c 45  64 69 74 41 63 6b 3d 3e  |ng an <EditAck=>|
00003420  4d 73 67 5f 34 35 64 38  31 3e 20 6d 65 73 73 61  |Msg_45d81> messa|
00003430  67 65 2e 0a 0a 54 68 69  73 20 6d 65 73 73 61 67  |ge...This messag|
00003440  65 20 69 73 20 70 61 72  74 20 6f 66 20 74 68 65  |e is part of the|
00003450  20 22 3c 45 78 74 65 72  6e 61 6c 20 45 64 69 74  | "<External Edit|
00003460  3d 3e 4d 73 67 5f 45 78  74 45 64 69 74 3e 22 20  |=>Msg_ExtEdit>" |
00003470  70 72 6f 74 6f 63 6f 6c  2e 00 00 00 44 41 54 41  |protocol....DATA|
00003480  d2 02 00 00 4d 65 73 73  61 67 65 5f 45 64 69 74  |....Message_Edit|
00003490  41 63 6b 20 20 28 26 34  35 44 38 31 29 0a 23 50  |Ack  (&45D81).#P|
000034a0  61 72 65 6e 74 20 4d 53  47 5f 0a 2b 20 32 30 09  |arent MSG_.+ 20.|
000034b0  3c 44 61 74 61 20 74 79  70 65 20 77 6f 72 64 3d  |<Data type word=|
000034c0  3e 4d 73 67 5f 45 78 74  45 64 69 74 44 61 74 61  |>Msg_ExtEditData|
000034d0  74 79 70 65 73 3e 20 28  66 69 6c 65 74 79 70 65  |types> (filetype|
000034e0  20 2b 20 73 75 62 74 79  70 65 29 0a 2b 20 32 34  | + subtype).+ 24|
000034f0  09 3c 4a 6f 62 20 68 61  6e 64 6c 65 3d 3e 4d 73  |.<Job handle=>Ms|
00003500  67 5f 45 78 74 45 64 69  74 4a 6f 62 48 61 6e 64  |g_ExtEditJobHand|
00003510  6c 65 3e 0a 2b 20 32 38  09 3c 46 6c 61 67 20 77  |le>.+ 28.<Flag w|
00003520  6f 72 64 3d 3e 4d 73 67  5f 45 78 74 45 64 69 74  |ord=>Msg_ExtEdit|
00003530  46 6c 61 67 73 3e 0a 0a  54 68 69 73 20 6d 65 73  |Flags>..This mes|
00003540  73 61 67 65 20 69 73 20  72 65 74 75 72 6e 65 64  |sage is returned|
00003550  20 62 79 20 74 68 65 20  22 65 64 69 74 6f 72 22  | by the "editor"|
00003560  20 61 66 74 65 72 20 72  65 63 65 69 76 69 6e 67  | after receiving|
00003570  20 61 6e 20 3c 45 64 69  74 52 71 3d 3e 4d 73 67  | an <EditRq=>Msg|
00003580  5f 34 35 64 38 30 3e 20  6d 65 73 73 61 67 65 20  |_45d80> message |
00003590  66 72 6f 6d 20 61 20 22  63 6c 69 65 6e 74 22 2e  |from a "client".|
000035a0  20 45 64 69 74 6f 72 20  73 65 74 73 20 74 68 65  | Editor sets the|
000035b0  20 74 6f 70 20 31 36 20  62 69 74 73 20 6f 66 20  | top 16 bits of |
000035c0  74 68 65 20 4a 6f 62 20  48 61 6e 64 6c 65 20 74  |the Job Handle t|
000035d0  6f 20 61 20 75 6e 69 71  75 65 20 76 61 6c 75 65  |o a unique value|
000035e0  2c 20 61 6e 64 20 62 6f  74 68 20 74 61 73 6b 73  |, and both tasks|
000035f0  20 77 69 6c 6c 20 66 72  6f 6d 20 6e 6f 77 20 6f  | will from now o|
00003600  6e 20 75 73 65 20 74 68  65 20 66 75 6c 6c 20 33  |n use the full 3|
00003610  32 20 62 69 74 20 77 6f  72 64 20 61 73 20 61 20  |2 bit word as a |
00003620  75 6e 69 71 75 65 20 6a  6f 62 20 68 61 6e 64 6c  |unique job handl|
00003630  65 2e 20 45 64 69 74 6f  72 20 6d 61 79 20 61 6c  |e. Editor may al|
00003640  73 6f 20 63 68 61 6e 67  65 20 73 6f 6d 65 20 62  |so change some b|
00003650  69 74 73 20 69 6e 20 74  68 65 20 46 6c 61 67 20  |its in the Flag |
00003660  57 6f 72 64 2e 0a 0a 45  64 69 74 6f 72 20 73 68  |Word...Editor sh|
00003670  6f 75 6c 64 20 63 72 65  61 74 65 20 61 6e 64 20  |ould create and |
00003680  6f 70 65 6e 20 61 6e 20  65 6d 70 74 79 20 64 6f  |open an empty do|
00003690  63 75 6d 65 6e 74 2e 20  49 66 20 74 68 65 20 22  |cument. If the "|
000036a0  63 6c 69 65 6e 74 22 20  77 61 6e 74 73 20 74 6f  |client" wants to|
000036b0  2c 20 69 74 20 6d 69 67  68 74 20 66 69 6c 6c 20  |, it might fill |
000036c0  74 68 65 20 65 6d 70 74  79 20 64 6f 63 20 77 69  |the empty doc wi|
000036d0  74 68 20 64 61 74 61 20  62 79 20 73 65 6e 64 69  |th data by sendi|
000036e0  6e 67 20 61 6e 20 3c 45  64 69 74 44 61 74 61 53  |ng an <EditDataS|
000036f0  61 76 65 3d 3e 4d 73 67  5f 34 35 64 38 34 3e 20  |ave=>Msg_45d84> |
00003700  6d 65 73 73 61 67 65 2e  0a 0a 54 68 69 73 20 6d  |message...This m|
00003710  65 73 73 61 67 65 20 69  73 20 70 61 72 74 20 6f  |essage is part o|
00003720  66 20 74 68 65 20 22 3c  45 78 74 65 72 6e 61 6c  |f the "<External|
00003730  20 45 64 69 74 3d 3e 4d  73 67 5f 45 78 74 45 64  | Edit=>Msg_ExtEd|
00003740  69 74 3e 22 20 70 72 6f  74 6f 63 6f 6c 2e 00 00  |it>" protocol...|
00003750  44 41 54 41 87 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00003760  45 64 69 74 52 65 74 75  72 6e 20 20 28 26 34 35  |EditReturn  (&45|
00003770  44 38 32 29 0a 23 50 61  72 65 6e 74 20 4d 53 47  |D82).#Parent MSG|
00003780  5f 0a 2b 20 32 30 09 3c  44 61 74 61 20 74 79 70  |_.+ 20.<Data typ|
00003790  65 20 77 6f 72 64 3d 3e  4d 73 67 5f 45 78 74 45  |e word=>Msg_ExtE|
000037a0  64 69 74 44 61 74 61 74  79 70 65 73 3e 20 28 66  |ditDatatypes> (f|
000037b0  69 6c 65 74 79 70 65 20  2b 20 73 75 62 74 79 70  |iletype + subtyp|
000037c0  65 29 0a 2b 20 32 34 09  3c 4a 6f 62 20 68 61 6e  |e).+ 24.<Job han|
000037d0  64 6c 65 3d 3e 4d 73 67  5f 45 78 74 45 64 69 74  |dle=>Msg_ExtEdit|
000037e0  4a 6f 62 48 61 6e 64 6c  65 3e 0a 2b 20 32 38 09  |JobHandle>.+ 28.|
000037f0  3c 46 6c 61 67 20 77 6f  72 64 3d 3e 4d 73 67 5f  |<Flag word=>Msg_|
00003800  45 78 74 45 64 69 74 46  6c 61 67 73 3e 0a 0a 54  |ExtEditFlags>..T|
00003810  68 69 73 20 6d 65 73 73  61 67 65 20 69 73 20 73  |his message is s|
00003820  65 6e 74 20 62 79 20 74  68 65 20 22 63 6c 69 65  |ent by the "clie|
00003830  6e 74 22 20 77 68 65 6e  20 69 74 20 77 61 6e 74  |nt" when it want|
00003840  73 20 69 74 73 20 64 61  74 61 20 62 61 63 6b 2e  |s its data back.|
00003850  20 45 64 69 74 6f 72 20  73 68 6f 75 6c 64 20 72  | Editor should r|
00003860  65 73 70 6f 6e 64 20 77  69 74 68 20 61 6e 20 3c  |espond with an <|
00003870  45 64 69 74 44 61 74 61  53 61 76 65 3d 3e 4d 73  |EditDataSave=>Ms|
00003880  67 5f 34 35 64 38 34 3e  20 6d 65 73 73 61 67 65  |g_45d84> message|
00003890  2e 0a 0a 54 68 69 73 20  6d 65 73 73 61 67 65 20  |...This message |
000038a0  69 73 20 70 61 72 74 20  6f 66 20 74 68 65 20 22  |is part of the "|
000038b0  3c 45 78 74 65 72 6e 61  6c 20 45 64 69 74 3d 3e  |<External Edit=>|
000038c0  4d 73 67 5f 45 78 74 45  64 69 74 3e 22 20 70 72  |Msg_ExtEdit>" pr|
000038d0  6f 74 6f 63 6f 6c 2e 00  44 41 54 41 44 01 00 00  |otocol..DATAD...|
000038e0  4d 65 73 73 61 67 65 5f  45 64 69 74 41 62 6f 72  |Message_EditAbor|
000038f0  74 20 20 28 26 34 35 44  38 33 29 0a 23 50 61 72  |t  (&45D83).#Par|
00003900  65 6e 74 20 4d 53 47 5f  0a 2b 20 32 30 09 30 0a  |ent MSG_.+ 20.0.|
00003910  2b 20 32 34 09 3c 4a 6f  62 20 48 61 6e 64 6c 65  |+ 24.<Job Handle|
00003920  3d 3e 4d 73 67 5f 45 78  74 45 64 69 74 4a 6f 62  |=>Msg_ExtEditJob|
00003930  48 61 6e 64 6c 65 3e 0a  0a 54 68 69 73 20 6d 65  |Handle>..This me|
00003940  73 73 61 67 65 20 63 61  6e 20 62 65 20 73 65 6e  |ssage can be sen|
00003950  74 20 62 79 20 62 6f 74  68 20 22 63 6c 69 65 6e  |t by both "clien|
00003960  74 22 20 61 6e 64 20 22  65 64 69 74 6f 72 22 2e  |t" and "editor".|
00003970  20 4e 6f 20 71 75 65 73  74 69 6f 6e 73 20 73 68  | No questions sh|
00003980  6f 75 6c 64 20 62 65 20  61 73 6b 65 64 2e 20 54  |ould be asked. T|
00003990  68 65 20 73 65 6e 64 65  72 20 6f 66 20 74 68 69  |he sender of thi|
000039a0  73 20 6d 65 73 73 61 67  65 20 69 73 20 72 65 73  |s message is res|
000039b0  70 6f 6e 73 69 62 6c 65  20 66 6f 72 20 61 6e 79  |ponsible for any|
000039c0  20 6d 65 73 73 61 67 65  73 20 74 6f 20 74 68 65  | messages to the|
000039d0  20 75 73 65 72 2e 0a 0a  54 68 69 73 20 6d 65 73  | user...This mes|
000039e0  73 61 67 65 20 69 73 20  70 61 72 74 20 6f 66 20  |sage is part of |
000039f0  74 68 65 20 22 3c 45 78  74 65 72 6e 61 6c 20 45  |the "<External E|
00003a00  64 69 74 3d 3e 4d 73 67  5f 45 78 74 45 64 69 74  |dit=>Msg_ExtEdit|
00003a10  3e 22 20 70 72 6f 74 6f  63 6f 6c 2e 44 41 54 41  |>" protocol.DATA|
00003a20  32 02 00 00 4d 65 73 73  61 67 65 5f 45 64 69 74  |2...Message_Edit|
00003a30  44 61 74 61 53 61 76 65  20 28 26 34 35 44 38 34  |DataSave (&45D84|
00003a40  29 0a 23 50 61 72 65 6e  74 20 4d 53 47 5f 0a 2b  |).#Parent MSG_.+|
00003a50  20 32 30 09 3c 4a 6f 62  20 68 61 6e 64 6c 65 3d  | 20.<Job handle=|
00003a60  3e 4d 73 67 5f 45 78 74  45 64 69 74 4a 6f 62 48  |>Msg_ExtEditJobH|
00003a70  61 6e 64 6c 65 3e 0a 2b  20 32 34 09 72 65 73 65  |andle>.+ 24.rese|
00003a80  72 76 65 64 0a 2b 20 32  38 09 72 65 73 65 72 76  |rved.+ 28.reserv|
00003a90  65 64 0a 2b 20 33 32 09  72 65 73 65 72 76 65 64  |ed.+ 32.reserved|
00003aa0  0a 2b 20 33 36 09 45 73  74 69 6d 61 74 65 64 20  |.+ 36.Estimated |
00003ab0  73 69 7a 65 0a 2b 20 34  30 09 3c 46 69 6c 65 74  |size.+ 40.<Filet|
00003ac0  79 70 65 3d 3e 46 69 6c  65 74 79 70 65 73 3a 21  |ype=>Filetypes:!|
00003ad0  52 6f 6f 74 3e 20 28 7b  2a 7d 4e 6f 74 7b 2a 7d  |Root> ({*}Not{*}|
00003ae0  20 44 61 74 61 74 79 70  65 29 0a 2b 20 34 34 09  | Datatype).+ 44.|
00003af0  50 72 6f 70 6f 73 65 64  20 6c 65 61 66 6e 61 6d  |Proposed leafnam|
00003b00  65 0a 0a 54 68 69 73 20  6d 65 73 73 61 67 65 20  |e..This message |
00003b10  69 73 20 76 65 72 79 20  73 69 6d 69 6c 61 72 20  |is very similar |
00003b20  74 6f 20 74 68 65 20 73  74 61 6e 64 61 72 64 20  |to the standard |
00003b30  3c 44 61 74 61 53 61 76  65 3d 3e 4d 73 67 5f 31  |<DataSave=>Msg_1|
00003b40  3e 20 6d 65 73 73 61 67  65 2c 20 61 6e 64 20 66  |> message, and f|
00003b50  72 6f 6d 20 68 65 72 65  20 6f 6e 20 74 68 65 20  |rom here on the |
00003b60  73 74 61 6e 64 61 72 64  20 44 61 74 61 20 54 72  |standard Data Tr|
00003b70  61 6e 73 66 65 72 20 50  72 6f 74 6f 63 6f 6c 20  |ansfer Protocol |
00003b80  69 73 20 75 73 65 64 2e  20 28 69 65 3a 20 69 74  |is used. (ie: it|
00003b90  20 69 73 20 61 6e 73 77  65 72 65 64 20 77 69 74  | is answered wit|
00003ba0  68 20 3c 44 61 74 61 53  61 76 65 41 63 6b 3d 3e  |h <DataSaveAck=>|
00003bb0  4d 73 67 5f 32 3e 20 6f  72 20 3c 52 61 6d 46 65  |Msg_2> or <RamFe|
00003bc0  74 63 68 3d 3e 4d 73 67  5f 36 3e 29 0a 4e 6f 74  |tch=>Msg_6>).Not|
00003bd0  65 20 74 68 61 74 20 74  68 65 20 22 63 6c 69 65  |e that the "clie|
00003be0  6e 74 22 20 63 61 6e 20  73 65 6e 64 20 74 68 69  |nt" can send thi|
00003bf0  73 20 6d 65 73 73 61 67  65 20 73 65 76 65 72 61  |s message severa|
00003c00  6c 20 74 69 6d 65 73 2e  0a 0a 54 68 69 73 20 6d  |l times...This m|
00003c10  65 73 73 61 67 65 20 69  73 20 70 61 72 74 20 6f  |essage is part o|
00003c20  66 20 74 68 65 20 22 3c  45 78 74 65 72 6e 61 6c  |f the "<External|
00003c30  20 45 64 69 74 3d 3e 4d  73 67 5f 45 78 74 45 64  | Edit=>Msg_ExtEd|
00003c40  69 74 3e 22 20 70 72 6f  74 6f 63 6f 6c 2e 00 00  |it>" protocol...|
00003c50  44 41 54 41 00 02 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00003c60  44 61 74 61 4f 70 65 6e  20 20 28 35 29 0a 23 50  |DataOpen  (5).#P|
00003c70  61 72 65 6e 74 20 4d 53  47 5f 0a 2b 20 32 30 09  |arent MSG_.+ 20.|
00003c80  57 69 6e 64 6f 77 20 68  61 6e 64 6c 65 20 6f 66  |Window handle of|
00003c90  20 64 69 72 65 63 74 6f  72 79 20 76 69 65 77 65  | directory viewe|
00003ca0  72 0a 2b 20 32 34 09 75  6e 75 73 65 64 0a 2b 20  |r.+ 24.unused.+ |
00003cb0  32 38 09 78 20 6f 66 66  73 65 74 20 6f 66 20 69  |28.x offset of i|
00003cc0  63 6f 6e 20 63 6c 69 63  6b 65 64 0a 2b 20 33 32  |con clicked.+ 32|
00003cd0  09 79 20 6f 66 66 73 65  74 20 6f 66 20 69 63 6f  |.y offset of ico|
00003ce0  6e 20 63 6c 69 63 6b 65  64 0a 2b 20 33 36 09 30  |n clicked.+ 36.0|
00003cf0  0a 2b 20 34 30 09 3c 66  69 6c 65 74 79 70 65 3d  |.+ 40.<filetype=|
00003d00  3e 46 69 6c 65 74 79 70  65 73 3a 21 52 6f 6f 74  |>Filetypes:!Root|
00003d10  3e 2c 20 26 33 30 30 30  20 66 6f 72 20 75 6e 74  |>, &3000 for unt|
00003d20  79 70 65 64 20 66 69 6c  65 73 2e 0a 2b 20 34 34  |yped files..+ 44|
00003d30  09 66 75 6c 6c 20 70 61  74 68 6e 61 6d 65 0a 0a  |.full pathname..|
00003d40  54 68 69 73 20 6d 65 73  73 61 67 65 20 69 73 20  |This message is |
00003d50  62 72 6f 61 64 63 61 73  74 65 64 20 77 68 65 6e  |broadcasted when|
00003d60  20 74 68 65 20 75 73 65  72 20 64 6f 75 62 6c 65  | the user double|
00003d70  63 6c 69 63 6b 73 20 6f  6e 20 61 20 66 69 6c 65  |clicks on a file|
00003d80  2e 20 49 66 20 74 68 65  20 72 65 63 65 69 76 65  |. If the receive|
00003d90  72 20 77 61 6e 74 73 20  74 6f 20 6c 6f 61 64 20  |r wants to load |
00003da0  74 68 65 20 66 69 6c 65  2c 20 68 65 20 73 68 6f  |the file, he sho|
00003db0  75 6c 64 20 61 63 6b 6e  6f 77 6c 65 64 67 65 20  |uld acknowledge |
00003dc0  74 68 69 73 20 6d 65 73  73 61 67 65 20 62 79 20  |this message by |
00003dd0  72 65 74 75 72 6e 69 6e  67 20 61 20 3c 44 61 74  |returning a <Dat|
00003de0  61 4c 6f 61 64 41 63 6b  3d 3e 4d 73 67 5f 34 3e  |aLoadAck=>Msg_4>|
00003df0  20 6d 65 73 73 61 67 65  2e 0a 49 66 20 6e 6f 20  | message..If no |
00003e00  6f 6e 65 20 61 63 6b 6e  6f 77 6c 65 64 67 65 73  |one acknowledges|
00003e10  20 74 68 65 20 6d 65 73  73 61 67 65 2c 20 74 68  | the message, th|
00003e20  65 20 66 69 6c 65 72 20  77 69 6c 6c 20 74 72 79  |e filer will try|
00003e30  20 74 6f 20 3c 72 75 6e  3d 3e 4f 53 3a 4f 53 5f  | to <run=>OS:OS_|
00003e40  46 53 43 6f 6e 74 72 6f  6c 34 3e 20 69 74 2e 0a  |FSControl4> it..|
00003e50  44 41 54 41 45 01 00 00  4d 65 73 73 61 67 65 5f  |DATAE...Message_|
00003e60  48 65 6c 70 52 65 71 75  65 73 74 20 28 26 35 30  |HelpRequest (&50|
00003e70  32 29 0a 23 50 61 72 65  6e 74 20 4d 53 47 5f 0a  |2).#Parent MSG_.|
00003e80  2b 20 32 30 09 4d 6f 75  73 65 20 78 0a 2b 20 32  |+ 20.Mouse x.+ 2|
00003e90  34 09 4d 6f 75 73 65 20  79 0a 2b 20 32 38 09 42  |4.Mouse y.+ 28.B|
00003ea0  75 74 74 6f 6e 20 73 74  61 74 65 0a 2b 20 33 32  |utton state.+ 32|
00003eb0  09 57 69 6e 64 6f 77 20  68 61 6e 64 6c 65 2c 20  |.Window handle, |
00003ec0  6f 72 20 2d 31 20 69 66  20 6e 6f 20 77 69 6e 64  |or -1 if no wind|
00003ed0  6f 77 0a 2b 20 33 36 09  49 63 6f 6e 20 68 61 6e  |ow.+ 36.Icon han|
00003ee0  64 6c 65 2c 20 6f 72 20  2d 31 20 69 66 20 6e 6f  |dle, or -1 if no|
00003ef0  20 69 63 6f 6e 0a 20 0a  54 68 65 20 21 48 65 6c  | icon. .The !Hel|
00003f00  70 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 73 65  |p application se|
00003f10  6e 64 73 20 6f 75 74 20  74 68 69 73 20 6d 65 73  |nds out this mes|
00003f20  73 61 67 65 2e 0a 0a 49  66 20 79 6f 75 20 77 61  |sage...If you wa|
00003f30  6e 74 20 74 6f 20 67 69  76 65 20 73 6f 6d 65 20  |nt to give some |
00003f40  73 69 6d 70 6c 65 20 68  65 6c 70 20 6f 6e 20 74  |simple help on t|
00003f50  68 65 20 67 69 76 65 6e  20 77 69 6e 64 6f 77 2f  |he given window/|
00003f60  69 63 6f 6e 2c 20 74 68  65 6e 20 72 65 70 6c 79  |icon, then reply|
00003f70  20 77 69 74 68 20 61 20  3c 48 65 6c 70 52 65 70  | with a <HelpRep|
00003f80  6c 79 3d 3e 4d 73 67 5f  35 30 33 3e 20 6d 65 73  |ly=>Msg_503> mes|
00003f90  73 61 67 65 2e 00 00 00  44 41 54 41 39 02 00 00  |sage....DATA9...|
00003fa0  4d 65 73 73 61 67 65 5f  48 65 6c 70 52 65 70 6c  |Message_HelpRepl|
00003fb0  79 20 28 26 35 30 33 29  0a 23 50 61 72 65 6e 74  |y (&503).#Parent|
00003fc0  20 4d 53 47 5f 0a 2b 20  32 30 09 7a 65 72 6f 20  | MSG_.+ 20.zero |
00003fd0  74 65 72 6d 69 6e 61 74  65 64 20 68 65 6c 70 2d  |terminated help-|
00003fe0  73 74 72 69 6e 67 0a 0a  54 68 69 73 20 6d 65 73  |string..This mes|
00003ff0  73 61 67 65 20 69 73 20  73 65 6e 74 20 62 79 20  |sage is sent by |
00004000  61 6e 20 61 70 70 6c 69  63 61 74 69 6f 6e 20 69  |an application i|
00004010  6e 20 72 65 70 6c 79 20  74 6f 20 61 20 3c 48 65  |n reply to a <He|
00004020  6c 70 52 65 71 75 65 73  74 3d 3e 4d 73 67 5f 35  |lpRequest=>Msg_5|
00004030  30 32 3e 20 6d 65 73 73  61 67 65 2e 0a 0a 23 20  |02> message...# |
00004040  45 68 3f 20 43 6f 6e 74  72 6f 6c 20 74 65 72 6d  |Eh? Control term|
00004050  69 6e 61 74 65 64 20 6f  72 20 4e 75 6c 6c 20 74  |inated or Null t|
00004060  65 72 6d 69 6e 61 74 65  64 2e 2e 2e 20 61 68 0a  |erminated... ah.|
00004070  4d 61 78 20 6c 65 6e 67  74 68 20 3d 20 32 35 36  |Max length = 256|
00004080  2d 32 30 2d 31 20 3d 20  32 33 35 20 63 68 61 72  |-20-1 = 235 char|
00004090  73 2e 20 3c 45 73 63 61  70 65 20 63 6f 64 65 73  |s. <Escape codes|
000040a0  3d 3e 4d 73 67 5f 35 30  33 43 6f 64 65 73 3e 20  |=>Msg_503Codes> |
000040b0  6d 61 79 20 62 65 20 75  73 65 64 20 75 6e 64 65  |may be used unde|
000040c0  72 20 52 49 53 43 20 4f  53 20 33 20 21 48 65 6c  |r RISC OS 3 !Hel|
000040d0  70 20 6f 72 20 65 71 75  69 76 61 6c 65 6e 74 2e  |p or equivalent.|
000040e0  0a 0a 54 68 65 20 63 75  72 72 65 6e 74 20 21 48  |..The current !H|
000040f0  65 6c 70 20 69 6d 70 6c  65 6d 65 6e 74 61 74 69  |elp implementati|
00004100  6f 6e 20 70 61 73 73 65  73 20 74 68 65 20 6d 65  |on passes the me|
00004110  73 73 61 67 65 20 62 6c  6f 63 6b 20 64 69 72 65  |ssage block dire|
00004120  63 74 20 74 6f 20 3c 4f  53 5f 47 53 54 72 61 6e  |ct to <OS_GSTran|
00004130  73 3d 3e 4f 53 3a 4f 53  5f 47 53 54 72 61 6e 73  |s=>OS:OS_GSTrans|
00004140  3e 20 62 65 66 6f 72 65  20 63 68 65 63 6b 69 6e  |> before checkin|
00004150  67 20 66 6f 72 20 22 5c  5c 22 20 65 73 63 61 70  |g for "\\" escap|
00004160  65 20 63 6f 64 65 73 20  2d 20 68 65 6e 63 65 20  |e codes - hence |
00004170  70 61 73 73 69 6e 67 20  43 52 20 6f 72 20 4c 46  |passing CR or LF|
00004180  20 74 65 72 6d 69 6e 61  74 65 64 20 73 74 72 69  | terminated stri|
00004190  6e 67 73 20 61 6e 64 20  75 73 69 6e 67 20 22 7c  |ngs and using "||
000041a0  22 20 63 6f 64 65 73 20  6f 74 68 65 72 20 74 68  |" codes other th|
000041b0  61 6e 20 7b 66 43 6f 64  65 7d 7c 4d 7b 66 7d 20  |an {fCode}|M{f} |
000041c0  69 73 20 75 6e 64 6f 63  75 6d 65 6e 74 65 64 2e  |is undocumented.|
000041d0  0a 00 00 00 44 41 54 41  73 00 00 00 4d 65 73 73  |....DATAs...Mess|
000041e0  61 67 65 5f 52 61 6d 46  65 74 63 68 20 28 36 29  |age_RamFetch (6)|
000041f0  0a 23 50 61 72 65 6e 74  20 4d 53 47 5f 0a 2b 20  |.#Parent MSG_.+ |
00004200  32 30 09 70 6f 69 6e 74  65 72 20 74 6f 20 62 75  |20.pointer to bu|
00004210  66 66 65 72 20 77 68 65  72 65 20 72 65 63 65 69  |ffer where recei|
00004220  76 65 72 20 73 68 6f 75  6c 64 20 70 75 74 20 64  |ver should put d|
00004230  61 74 61 0a 2b 20 32 34  09 73 69 7a 65 20 6f 66  |ata.+ 24.size of|
00004240  20 62 75 66 66 65 72 00  44 41 54 41 00 01 00 00  | buffer.DATA....|
00004250  4d 65 73 73 61 67 65 5f  52 61 6d 54 72 61 6e 73  |Message_RamTrans|
00004260  6d 69 74 20 28 37 29 0a  23 50 61 72 65 6e 74 20  |mit (7).#Parent |
00004270  4d 53 47 5f 0a 2b 20 32  30 09 70 6f 69 6e 74 65  |MSG_.+ 20.pointe|
00004280  72 20 74 6f 20 62 75 66  66 65 72 20 66 72 6f 6d  |r to buffer from|
00004290  20 52 61 6d 46 65 74 63  68 20 6d 65 73 73 61 67  | RamFetch messag|
000042a0  65 0a 2b 20 32 34 09 61  6d 6f 75 6e 74 20 6f 66  |e.+ 24.amount of|
000042b0  20 64 61 74 61 20 77 72  69 74 74 65 6e 20 74 6f  | data written to|
000042c0  20 74 68 65 20 62 75 66  66 65 72 0a 0a 41 66 74  | the buffer..Aft|
000042d0  65 72 20 72 65 63 69 65  76 69 6e 67 20 61 20 52  |er recieving a R|
000042e0  61 6d 46 65 74 63 68 20  6d 65 73 73 61 67 65 2c  |amFetch message,|
000042f0  20 79 6f 75 20 77 72 69  74 65 20 64 61 74 61 20  | you write data |
00004300  74 6f 20 62 75 66 66 65  72 2c 20 75 73 69 6e 67  |to buffer, using|
00004310  20 3c 57 69 6d 70 5f 54  72 61 6e 73 66 65 72 42  | <Wimp_TransferB|
00004320  6c 6f 63 6b 3e 2c 20 61  6e 64 20 74 68 65 6e 20  |lock>, and then |
00004330  73 65 6e 64 20 62 61 63  6b 20 74 68 69 73 20 6d  |send back this m|
00004340  65 73 73 61 67 65 2e 0a  44 41 54 41 24 04 00 00  |essage..DATA$...|
00004350  4d 65 73 73 61 67 65 5f  50 72 65 51 75 69 74 20  |Message_PreQuit |
00004360  28 38 29 0a 23 50 61 72  65 6e 74 20 4d 73 67 5f  |(8).#Parent Msg_|
00004370  0a 2b 20 32 30 09 66 6c  61 67 2c 20 30 20 69 66  |.+ 20.flag, 0 if|
00004380  20 63 6c 6f 73 65 64 6f  77 6e 2c 20 6e 6f 74 20  | closedown, not |
00004390  69 66 20 73 69 6e 67 6c  65 2d 71 75 69 74 0a 09  |if single-quit..|
000043a0  28 63 68 65 63 6b 20 74  68 65 20 62 6c 6f 63 6b  |(check the block|
000043b0  20 6c 65 6e 67 74 68 20  2d 20 69 66 20 5c 3c 20  | length - if \< |
000043c0  32 30 20 62 79 74 65 73  20 61 73 73 75 6d 65 20  |20 bytes assume |
000043d0  61 20 66 6c 61 67 20 77  6f 72 64 20 6f 66 20 30  |a flag word of 0|
000043e0  29 0a 0a 54 68 69 73 20  6d 65 73 73 61 67 65 20  |)..This message |
000043f0  69 73 20 62 72 6f 61 64  63 61 73 74 65 64 20 77  |is broadcasted w|
00004400  68 65 6e 20 43 74 72 6c  2d 53 68 69 66 74 20 46  |hen Ctrl-Shift F|
00004410  31 32 20 69 73 20 70 72  65 73 73 65 64 2e 20 49  |12 is pressed. I|
00004420  74 20 69 73 20 61 6c 73  6f 20 73 65 6e 74 20 74  |t is also sent t|
00004430  6f 20 61 20 73 70 65 63  69 66 69 63 20 74 61 73  |o a specific tas|
00004440  6b 2c 20 77 68 65 6e 20  74 68 65 20 75 73 65 72  |k, when the user|
00004450  20 74 72 69 65 73 20 74  6f 20 71 75 69 74 20 69  | tries to quit i|
00004460  74 20 66 72 6f 6d 20 74  68 65 20 74 61 73 6b 20  |t from the task |
00004470  64 69 73 70 6c 61 79 20  6d 65 6e 75 2e 0a 0a 49  |display menu...I|
00004480  66 20 79 6f 75 20 68 61  76 65 20 6e 6f 20 6f 62  |f you have no ob|
00004490  6a 65 63 74 69 6f 6e 73  20 74 6f 20 62 65 69 6e  |jections to bein|
000044a0  67 20 6b 69 6c 6c 65 64  2c 20 74 68 65 6e 20 69  |g killed, then i|
000044b0  67 6e 6f 72 65 20 74 68  69 73 20 6d 65 73 73 61  |gnore this messa|
000044c0  67 65 2c 20 61 6e 64 20  79 6f 75 20 77 69 6c 6c  |ge, and you will|
000044d0  20 65 76 65 6e 74 75 61  6c 6c 79 20 72 65 63 65  | eventually rece|
000044e0  69 76 65 20 61 20 3c 51  75 69 74 20 6d 65 73 73  |ive a <Quit mess|
000044f0  61 67 65 3d 3e 4d 73 67  5f 30 3e 2e 0a 0a 49 66  |age=>Msg_0>...If|
00004500  20 79 6f 75 20 6f 62 6a  65 63 74 20 74 6f 20 62  | you object to b|
00004510  65 69 6e 67 20 6b 69 6c  6c 65 64 20 28 75 6e 73  |eing killed (uns|
00004520  61 76 65 64 20 64 61 74  61 2e 2e 29 2c 20 79 6f  |aved data..), yo|
00004530  75 20 73 68 6f 75 6c 64  20 3c 61 63 6b 6e 6f 77  |u should <acknow|
00004540  6c 65 64 67 65 3d 3e 77  69 6d 70 5f 73 65 6e 64  |ledge=>wimp_send|
00004550  6d 65 73 73 61 67 65 33  3e 20 74 68 69 73 20 6d  |message3> this m|
00004560  65 73 73 61 67 65 2c 20  61 6e 64 20 74 68 65 6e  |essage, and then|
00004570  20 6f 70 65 6e 20 61 20  64 69 61 6c 6f 67 75 65  | open a dialogue|
00004580  20 62 6f 78 20 61 73 6b  69 6e 67 20 74 68 65 20  | box asking the |
00004590  75 73 65 72 20 77 68 61  74 20 74 6f 20 64 6f 2e  |user what to do.|
000045a0  20 49 66 20 74 68 65 20  75 73 65 72 20 63 68 6f  | If the user cho|
000045b0  6f 73 65 73 20 74 6f 20  71 75 69 74 20 61 6e 64  |oses to quit and|
000045c0  20 74 68 65 20 27 66 6c  61 67 27 20 77 61 73 20  | the 'flag' was |
000045d0  7a 65 72 6f 2c 20 79 6f  75 20 61 72 65 20 73 75  |zero, you are su|
000045e0  70 70 6f 73 65 64 20 74  6f 20 72 65 73 74 61 72  |pposed to restar|
000045f0  74 20 74 68 65 20 63 6c  6f 73 65 64 6f 77 6e 20  |t the closedown |
00004600  73 65 71 75 65 6e 63 65  20 62 79 20 65 6d 69 74  |sequence by emit|
00004610  74 69 6e 67 20 61 20 43  74 72 6c 2d 53 68 69 66  |ting a Ctrl-Shif|
00004620  74 20 46 31 32 20 28 35  30 38 29 2c 20 75 73 69  |t F12 (508), usi|
00004630  6e 67 20 3c 57 69 6d 70  5f 50 72 6f 63 65 73 73  |ng <Wimp_Process|
00004640  4b 65 79 3e 2e 0a 0a 54  68 65 20 27 66 6c 61 67  |Key>...The 'flag|
00004650  27 20 69 73 20 6e 65 77  20 75 6e 64 65 72 20 52  |' is new under R|
00004660  4f 33 2e 20 55 6e 64 65  72 20 52 4f 32 20 74 68  |O3. Under RO2 th|
00004670  65 72 65 20 77 61 73 20  6e 6f 20 77 61 79 20 6f  |ere was no way o|
00004680  66 20 6b 6e 6f 77 69 6e  67 20 69 66 20 6f 6e 6c  |f knowing if onl|
00004690  79 20 79 6f 75 72 20 74  61 73 6b 20 77 61 73 20  |y your task was |
000046a0  62 65 69 6e 67 20 71 75  69 74 2c 20 6f 72 20 74  |being quit, or t|
000046b0  68 65 20 77 68 6f 6c 65  20 64 65 73 6b 74 6f 70  |he whole desktop|
000046c0  2e 0a 0a 4e 6f 74 65 20  74 68 61 74 20 74 68 65  |...Note that the|
000046d0  20 70 72 6f 74 6f 63 6f  6c 20 69 73 20 73 74 69  | protocol is sti|
000046e0  6c 6c 20 62 75 67 67 79  2c 20 69 6e 20 74 68 61  |ll buggy, in tha|
000046f0  74 20 69 66 20 63 6c 6f  73 65 64 6f 77 6e 20 68  |t if closedown h|
00004700  61 73 20 62 65 65 6e 20  69 6e 69 74 69 61 74 65  |as been initiate|
00004710  64 20 62 79 20 27 45 78  69 74 27 20 6f 6e 20 74  |d by 'Exit' on t|
00004720  68 65 20 74 61 73 6b 6d  61 6e 61 67 65 72 20 6d  |he taskmanager m|
00004730  65 6e 75 2c 20 74 68 65  6e 20 69 74 20 77 69 6c  |enu, then it wil|
00004740  6c 20 62 65 20 72 65 73  74 61 72 74 65 64 20 62  |l be restarted b|
00004750  79 20 74 68 65 20 70 72  6f 67 72 61 6d 20 61 73  |y the program as|
00004760  20 27 53 68 75 74 64 6f  77 6e 27 0a 44 41 54 41  | 'Shutdown'.DATA|
00004770  31 02 00 00 4d 65 73 73  61 67 65 20 50 72 69 6e  |1...Message Prin|
00004780  74 46 69 6c 65 20 20 28  26 38 30 31 34 30 29 0a  |tFile  (&80140).|
00004790  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 2b 20 32  |#Parent MSG_.+ 2|
000047a0  30 09 64 65 73 74 69 6e  61 74 69 6f 6e 09 77 69  |0.destination.wi|
000047b0  6e 64 6f 77 20 68 61 6e  64 6c 65 0a 2b 20 32 34  |ndow handle.+ 24|
000047c0  09 20 09 09 69 63 6f 6e  20 68 61 6e 64 6c 65 0a  |. ..icon handle.|
000047d0  2b 20 32 38 09 20 09 09  73 63 72 65 65 6e 78 0a  |+ 28. ..screenx.|
000047e0  2b 20 33 32 09 20 09 09  73 63 72 65 65 6e 79 0a  |+ 32. ..screeny.|
000047f0  2b 20 33 36 09 65 73 74  69 6d 61 74 65 64 20 73  |+ 36.estimated s|
00004800  69 7a 65 0a 2b 20 34 30  09 3c 66 69 6c 65 74 79  |ize.+ 40.<filety|
00004810  70 65 3d 3e 46 69 6c 65  74 79 70 65 73 3a 21 52  |pe=>Filetypes:!R|
00004820  6f 6f 74 3e 20 6f 66 20  64 61 74 61 0a 2b 20 34  |oot> of data.+ 4|
00004830  34 09 70 72 6f 70 6f 73  65 64 20 6c 65 61 66 6e  |4.proposed leafn|
00004840  61 6d 65 2c 20 30 2d 74  65 72 6d 69 6e 61 74 65  |ame, 0-terminate|
00004850  64 0a 0a 54 68 69 73 20  6d 65 73 73 61 67 65 20  |d..This message |
00004860  69 73 20 73 65 6e 74 20  62 79 20 21 50 72 69 6e  |is sent by !Prin|
00004870  74 65 72 73 20 77 68 65  6e 20 69 74 20 72 65 63  |ters when it rec|
00004880  65 69 76 65 73 20 61 20  44 61 74 61 53 61 76 65  |eives a DataSave|
00004890  20 6f 72 20 50 72 69 6e  74 53 61 76 65 20 6d 65  | or PrintSave me|
000048a0  73 73 61 67 65 2e 20 54  68 65 20 74 61 73 6b 20  |ssage. The task |
000048b0  63 61 6e 20 64 6f 20 74  68 65 20 66 6f 6c 6c 6f  |can do the follo|
000048c0  77 69 6e 67 20 3a 0a 0a  20 20 2a 09 49 67 6e 6f  |wing :..  *.Igno|
000048d0  72 65 2e 20 21 50 72 69  6e 74 65 72 73 20 77 69  |re. !Printers wi|
000048e0  6c 6c 20 73 65 6e 64 20  3c 44 61 74 61 53 61 76  |ll send <DataSav|
000048f0  65 41 63 6b 3d 3e 4d 73  67 5f 32 3e 2c 20 74 6f  |eAck=>Msg_2>, to|
00004900  20 73 61 76 65 20 74 68  65 20 66 69 6c 65 20 66  | save the file f|
00004910  6f 72 20 6c 61 74 65 72  20 70 72 69 6e 74 69 6e  |or later printin|
00004920  67 2e 0a 20 20 2a 09 52  65 73 70 6f 6e 64 20 77  |g..  *.Respond w|
00004930  69 74 68 20 3c 57 69 6c  6c 50 72 69 6e 74 3d 3e  |ith <WillPrint=>|
00004940  4d 73 67 5f 38 30 31 34  31 3e 2c 20 74 6f 20 73  |Msg_80141>, to s|
00004950  65 6e 64 20 64 61 74 61  20 74 6f 20 50 72 69 6e  |end data to Prin|
00004960  74 65 72 3a 0a 20 20 2a  09 50 75 74 20 64 61 74  |ter:.  *.Put dat|
00004970  61 20 69 6e 20 50 72 69  6e 74 65 72 24 54 65 6d  |a in Printer$Tem|
00004980  70 20 61 6e 64 20 73 65  6e 64 20 3c 44 61 74 61  |p and send <Data|
00004990  4c 6f 61 64 3d 3e 4d 73  67 5f 33 3e 2e 00 00 00  |Load=>Msg_3>....|
000049a0  44 41 54 41 25 01 00 00  54 61 73 6b 57 69 6e 64  |DATA%...TaskWind|
000049b0  6f 77 5f 49 6e 70 75 74  20 20 28 26 38 30 38 43  |ow_Input  (&808C|
000049c0  30 29 0a 23 50 61 72 65  6e 74 20 4d 53 47 5f 0a  |0).#Parent MSG_.|
000049d0  2b 20 34 09 43 68 69 6c  64 27 73 20 74 61 73 6b  |+ 4.Child's task|
000049e0  20 69 64 0a 2b 20 32 30  09 53 69 7a 65 0a 2b 20  | id.+ 20.Size.+ |
000049f0  32 34 09 44 61 74 61 2e  2e 2e 0a 0a 54 68 69 73  |24.Data.....This|
00004a00  20 6d 65 73 73 61 67 65  20 69 73 20 75 73 65 64  | message is used|
00004a10  20 74 6f 20 67 69 76 65  20 69 6e 70 75 74 20 64  | to give input d|
00004a20  61 74 61 20 28 6b 65 79  20 70 72 65 73 73 65 73  |ata (key presses|
00004a30  29 20 74 6f 20 74 68 65  20 63 68 69 6c 64 20 74  |) to the child t|
00004a40  61 73 6b 2e 20 4c 61 72  67 65 72 20 61 6d 6f 75  |ask. Larger amou|
00004a50  6e 74 73 20 6f 66 20 64  61 74 61 20 63 61 6e 20  |nts of data can |
00004a60  62 65 20 73 65 6e 74 20  77 69 74 68 20 74 68 65  |be sent with the|
00004a70  20 44 61 74 61 20 54 72  61 6e 73 66 65 72 20 50  | Data Transfer P|
00004a80  72 6f 74 6f 63 6f 6c 2e  20 4a 75 73 74 20 73 65  |rotocol. Just se|
00004a90  6e 64 20 61 20 44 61 74  61 53 61 76 65 20 6d 65  |nd a DataSave me|
00004aa0  73 73 61 67 65 2c 20 61  6e 64 20 77 61 69 74 20  |ssage, and wait |
00004ab0  66 6f 72 20 52 61 6d 46  65 74 63 68 20 6d 65 73  |for RamFetch mes|
00004ac0  73 61 67 65 2e 00 00 00  44 41 54 41 ca 00 00 00  |sage....DATA....|
00004ad0  54 61 73 6b 57 69 6e 64  6f 77 5f 4f 75 74 70 75  |TaskWindow_Outpu|
00004ae0  74 20 20 28 26 38 30 38  43 31 29 0a 23 50 61 72  |t  (&808C1).#Par|
00004af0  65 6e 74 20 4d 53 47 5f  0a 2b 20 34 09 43 68 69  |ent MSG_.+ 4.Chi|
00004b00  6c 64 27 73 20 74 61 73  6b 20 69 64 0a 2b 20 32  |ld's task id.+ 2|
00004b10  30 09 73 69 7a 65 20 28  6d 61 78 20 32 33 32 20  |0.size (max 232 |
00004b20  62 79 74 65 73 29 0a 2b  20 32 34 09 64 61 74 61  |bytes).+ 24.data|
00004b30  0a 0a 54 68 69 73 20 6d  65 73 73 61 67 65 20 69  |..This message i|
00004b40  73 20 73 65 6e 74 20 77  68 65 6e 20 63 68 69 6c  |s sent when chil|
00004b50  64 20 68 61 73 20 70 72  6f 64 75 63 65 64 20 6f  |d has produced o|
00004b60  75 74 70 75 74 20 64 61  74 61 2e 20 41 63 6b 6e  |utput data. Ackn|
00004b70  6f 77 6c 65 64 67 65 20  6d 65 73 73 61 67 65 2c  |owledge message,|
00004b80  20 61 6e 64 20 64 69 73  70 6c 61 79 20 64 61 74  | and display dat|
00004b90  61 2e 00 00 44 41 54 41  37 01 00 00 54 61 73 6b  |a...DATA7...Task|
00004ba0  57 69 6e 64 6f 77 5f 45  67 6f 20 20 28 26 38 30  |Window_Ego  (&80|
00004bb0  38 43 32 29 0a 23 50 61  72 65 6e 74 20 4d 53 47  |8C2).#Parent MSG|
00004bc0  5f 0a 2b 20 34 09 54 61  73 6b 20 68 61 6e 64 6c  |_.+ 4.Task handl|
00004bd0  65 20 6f 66 20 63 68 69  6c 64 2e 0a 2b 20 32 30  |e of child..+ 20|
00004be0  09 50 61 72 65 6e 74 27  73 20 74 78 74 2d 68 61  |.Parent's txt-ha|
00004bf0  6e 64 6c 65 2e 0a 0a 54  68 69 73 20 6d 65 73 73  |ndle...This mess|
00004c00  61 67 65 20 69 73 20 73  65 6e 74 20 74 6f 20 79  |age is sent to y|
00004c10  6f 75 72 20 74 61 73 6b  20 61 66 74 65 72 20 79  |our task after y|
00004c20  6f 75 27 76 65 20 69 73  73 75 65 64 20 61 20 2a  |ou've issued a *|
00004c30  53 74 61 72 74 54 61 73  6b 20 2e 2e 2e 2e 20 2d  |StartTask .... -|
00004c40  74 78 74 20 26 78 78 78  78 78 78 78 78 20 20 63  |txt &xxxxxxxx  c|
00004c50  6f 6d 6d 61 6e 64 2e 20  54 68 69 73 20 69 73 20  |ommand. This is |
00004c60  74 68 65 20 66 69 72 73  74 20 61 6e 64 20 6c 61  |the first and la|
00004c70  73 74 20 74 69 6d 65 20  74 68 65 20 74 78 74 2d  |st time the txt-|
00004c80  68 61 6e 64 6c 65 20 77  69 6c 6c 20 62 65 20 75  |handle will be u|
00004c90  73 65 64 2e 20 46 72 6f  6d 20 6e 6f 77 20 6f 6e  |sed. From now on|
00004ca0  2c 20 74 68 65 20 63 68  69 6c 64 27 73 20 74 61  |, the child's ta|
00004cb0  73 6b 2d 69 64 20 77 69  6c 6c 20 62 65 20 75 73  |sk-id will be us|
00004cc0  65 64 20 69 6e 73 74 65  61 64 2e 00 44 41 54 41  |ed instead..DATA|
00004cd0  61 00 00 00 54 61 73 6b  57 69 6e 64 6f 77 5f 4d  |a...TaskWindow_M|
00004ce0  6f 72 69 6f 20 20 28 26  38 30 38 43 33 29 0a 23  |orio  (&808C3).#|
00004cf0  50 61 72 65 6e 74 20 4d  53 47 5f 0a 54 68 69 73  |Parent MSG_.This|
00004d00  20 6d 65 73 73 61 67 65  20 69 73 20 73 65 6e 74  | message is sent|
00004d10  20 74 6f 20 70 61 72 65  6e 74 20 77 68 65 6e 20  | to parent when |
00004d20  63 68 69 6c 64 20 65 78  69 74 73 2e 20 00 00 00  |child exits. ...|
00004d30  44 41 54 41 5f 00 00 00  54 61 73 6b 57 69 6e 64  |DATA_...TaskWind|
00004d40  6f 77 5f 4d 6f 72 69 74  65 20 20 28 26 38 30 38  |ow_Morite  (&808|
00004d50  43 34 29 0a 23 50 61 72  65 6e 74 20 4d 53 47 5f  |C4).#Parent MSG_|
00004d60  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 69 73  |.This message is|
00004d70  20 73 65 6e 74 20 62 79  20 70 61 72 65 6e 74 20  | sent by parent |
00004d80  74 6f 20 6b 69 6c 6c 20  63 68 69 6c 64 2e 20 00  |to kill child. .|
00004d90  44 41 54 41 e2 01 00 00  54 61 73 6b 57 69 6e 64  |DATA....TaskWind|
00004da0  6f 77 5f 4e 65 77 54 61  73 6b 20 20 28 26 38 30  |ow_NewTask  (&80|
00004db0  38 43 35 29 0a 23 50 61  72 65 6e 74 20 4d 53 47  |8C5).#Parent MSG|
00004dc0  5f 0a 2b 20 32 30 09 43  6f 6d 6d 61 6e 64 20 74  |_.+ 20.Command t|
00004dd0  6f 20 65 78 65 63 75 74  65 0a 0a 54 68 69 73 20  |o execute..This |
00004de0  6d 65 73 73 61 67 65 20  69 73 20 62 72 6f 61 64  |message is broad|
00004df0  63 61 73 74 65 64 20 62  79 20 74 68 65 20 54 61  |casted by the Ta|
00004e00  73 6b 77 69 6e 64 6f 77  20 6d 6f 64 75 6c 65 20  |skwindow module |
00004e10  77 68 65 6e 20 61 20 2a  54 61 73 6b 57 69 6e 64  |when a *TaskWind|
00004e20  6f 77 20 63 6f 6d 6d 61  6e 64 20 68 61 76 65 20  |ow command have |
00004e30  62 65 65 6e 20 65 78 65  63 75 74 65 64 20 77 69  |been executed wi|
00004e40  74 68 6f 75 74 20 70 72  6f 70 65 72 20 2d 74 61  |thout proper -ta|
00004e50  73 6b 20 61 6e 64 20 2d  74 78 74 20 66 6c 61 67  |sk and -txt flag|
00004e60  73 2e 20 49 66 20 72 65  63 65 69 76 69 6e 67 20  |s. If receiving |
00004e70  74 61 73 6b 20 63 61 6e  20 73 75 70 70 6f 72 74  |task can support|
00004e80  20 74 61 73 6b 77 69 6e  64 6f 77 73 2c 20 69 74  | taskwindows, it|
00004e90  20 73 68 6f 75 6c 64 20  61 63 6b 6e 6f 77 6c 65  | should acknowle|
00004ea0  64 67 65 20 74 68 69 73  20 6d 65 73 73 61 67 65  |dge this message|
00004eb0  2c 20 61 6e 64 20 57 69  6d 70 5f 53 74 61 72 74  |, and Wimp_Start|
00004ec0  54 61 73 6b 0a 0a 23 49  6e 64 65 6e 74 20 32 3b  |Task..#Indent 2;|
00004ed0  54 61 62 0a 22 5c 3c 53  74 72 69 6e 67 20 61 74  |Tab."\<String at|
00004ee0  20 2b 32 30 3e 20 78 78  78 78 78 78 78 78 20 79  | +20> xxxxxxxx y|
00004ef0  79 79 79 79 79 79 79 20  22 0a 0a 78 78 78 78 78  |yyyyyyy "..xxxxx|
00004f00  78 78 78 09 3a 20 59 6f  75 72 20 74 61 73 6b 20  |xxx.: Your task |
00004f10  68 61 6e 64 6c 65 20 20  20 28 68 65 78 29 0a 79  |handle   (hex).y|
00004f20  79 79 79 79 79 79 79 09  3a 20 55 6e 69 71 75 65  |yyyyyyy.: Unique|
00004f30  20 74 65 78 74 68 61 6e  64 6c 65 20 20 28 68 65  | texthandle  (he|
00004f40  78 29 0a 23 49 6e 64 65  6e 74 0a 0a 4e 6f 74 65  |x).#Indent..Note|
00004f50  20 74 68 65 20 65 78 74  72 61 20 73 70 61 63 65  | the extra space|
00004f60  20 61 66 74 65 72 20 74  65 78 74 68 61 6e 64 6c  | after texthandl|
00004f70  65 2e 00 00 44 41 54 41  62 00 00 00 54 61 73 6b  |e...DATAb...Task|
00004f80  57 69 6e 64 6f 77 5f 53  75 73 70 65 6e 64 20 20  |Window_Suspend  |
00004f90  28 26 38 30 38 43 36 29  0a 23 50 61 72 65 6e 74  |(&808C6).#Parent|
00004fa0  20 4d 53 47 5f 0a 54 68  69 73 20 6d 65 73 73 61  | MSG_.This messa|
00004fb0  67 65 20 69 73 20 73 65  6e 74 20 62 79 20 70 61  |ge is sent by pa|
00004fc0  72 65 6e 74 20 74 6f 20  73 75 73 70 65 6e 64 20  |rent to suspend |
00004fd0  63 68 69 6c 64 2e 00 00  44 41 54 41 77 00 00 00  |child...DATAw...|
00004fe0  54 61 73 6b 57 69 6e 64  6f 77 5f 52 65 73 75 6d  |TaskWindow_Resum|
00004ff0  65 20 20 28 26 38 30 38  43 37 29 0a 23 50 61 72  |e  (&808C7).#Par|
00005000  65 6e 74 20 4d 53 47 5f  0a 54 68 69 73 20 6d 65  |ent MSG_.This me|
00005010  73 73 61 67 65 20 69 73  20 73 65 6e 74 20 62 79  |ssage is sent by|
00005020  20 70 61 72 65 6e 74 20  74 6f 20 72 65 73 75 6d  | parent to resum|
00005030  65 20 61 20 70 72 65 76  69 6f 75 73 6c 79 20 73  |e a previously s|
00005040  75 73 70 65 6e 64 65 64  20 63 68 69 6c 64 2e 00  |uspended child..|
00005050  44 41 54 41 c5 00 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00005060  4f 4c 45 46 69 6c 65 43  68 61 6e 67 65 64 20 20  |OLEFileChanged  |
00005070  28 26 38 30 45 31 45 29  0a 23 50 61 72 65 6e 74  |(&80E1E).#Parent|
00005080  20 4d 73 67 5f 0a 2b 20  32 30 09 4d 65 73 73 61  | Msg_.+ 20.Messa|
00005090  67 65 20 74 79 70 65 20  3a 0a 0a 09 69 66 20 74  |ge type :...if t|
000050a0  79 70 65 20 3d 20 30 0a  2b 20 32 34 09 53 65 73  |ype = 0.+ 24.Ses|
000050b0  73 69 6f 6e 20 6e 75 6d  62 65 72 0a 2b 20 32 38  |sion number.+ 28|
000050c0  09 46 75 6c 6c 20 70 61  74 68 6e 61 6d 65 20 6f  |.Full pathname o|
000050d0  66 20 64 61 74 61 0a 0a  09 69 66 20 74 79 70 65  |f data...if type|
000050e0  20 3d 20 31 0a 2b 20 32  34 09 53 65 73 73 69 6f  | = 1.+ 24.Sessio|
000050f0  6e 20 6e 75 6d 62 65 72  20 28 69 65 2e 20 70 61  |n number (ie. pa|
00005100  74 68 6e 61 6d 65 20 69  73 20 75 6e 63 68 61 6e  |thname is unchan|
00005110  67 65 64 29 0a 00 00 00  44 41 54 41 64 02 00 00  |ged)....DATAd...|
00005120  4d 65 73 73 61 67 65 5f  4f 4c 45 4f 70 65 6e 53  |Message_OLEOpenS|
00005130  65 73 73 69 6f 6e 20 20  28 26 38 30 45 32 31 29  |ession  (&80E21)|
00005140  0a 23 50 61 72 65 6e 74  20 4d 53 47 5f 0a 2b 20  |.#Parent MSG_.+ |
00005150  32 30 09 55 6e 69 71 75  65 20 4e 61 6d 65 20 28  |20.Unique Name (|
00005160  31 36 20 62 79 74 65 2c  20 70 61 64 64 65 64 20  |16 byte, padded |
00005170  77 69 74 68 20 7a 65 72  6f 73 29 0a 2b 20 33 36  |with zeros).+ 36|
00005180  09 57 69 6e 64 6f 77 20  68 61 6e 64 6c 65 0a 2b  |.Window handle.+|
00005190  20 34 30 09 78 0a 2b 20  34 34 09 79 0a 2b 20 34  | 40.x.+ 44.y.+ 4|
000051a0  38 09 53 65 73 73 69 6f  6e 20 74 79 70 65 20 3a  |8.Session type :|
000051b0  0a 0a 09 69 66 20 74 79  70 65 20 3d 20 30 20 6f  |...if type = 0 o|
000051c0  72 20 31 20 28 65 64 69  74 20 66 69 6c 65 29 0a  |r 1 (edit file).|
000051d0  20 2b 20 35 32 09 53 65  73 73 69 6f 6e 20 6e 75  | + 52.Session nu|
000051e0  6d 62 65 72 0a 20 2b 20  35 36 09 46 69 6c 65 74  |mber. + 56.Filet|
000051f0  79 70 65 0a 20 2b 20 36  30 09 46 75 6c 6c 20 70  |ype. + 60.Full p|
00005200  61 74 68 6e 61 6d 65 0a  0a 09 69 66 20 74 79 70  |athname...if typ|
00005210  65 20 3d 20 32 20 28 72  65 2d 65 64 69 74 20 66  |e = 2 (re-edit f|
00005220  69 6c 65 29 0a 20 2b 20  35 32 09 53 65 73 73 69  |ile). + 52.Sessi|
00005230  6f 6e 20 6e 75 6d 62 65  72 0a 0a 53 65 73 73 69  |on number..Sessi|
00005240  6f 6e 20 74 79 70 65 20  30 20 69 73 20 75 73 65  |on type 0 is use|
00005250  64 20 69 6e 69 74 69 61  6c 6c 79 2f 6e 6f 72 6d  |d initially/norm|
00005260  61 6c 6c 79 2e 20 49 66  20 74 68 69 73 20 72 65  |ally. If this re|
00005270  74 75 72 6e 73 20 75 6e  61 6e 73 77 65 72 65 64  |turns unanswered|
00005280  2c 20 74 68 65 6e 20 63  6c 69 65 6e 74 20 73 68  |, then client sh|
00005290  6f 75 6c 64 20 74 72 79  20 74 6f 20 72 75 6e 20  |ould try to run |
000052a0  74 68 65 20 73 65 72 76  65 72 2c 20 61 6e 64 20  |the server, and |
000052b0  74 68 65 6e 20 73 65 6e  64 20 74 68 69 73 20 6d  |then send this m|
000052c0  65 73 73 61 67 65 20 61  67 61 69 6e 2c 20 62 75  |essage again, bu|
000052d0  74 20 77 69 74 68 20 74  79 70 65 20 31 2e 20 49  |t with type 1. I|
000052e0  66 20 74 68 69 73 20 61  6c 73 6f 20 72 65 74 75  |f this also retu|
000052f0  72 6e 73 20 74 68 65 20  73 65 72 76 65 72 20 77  |rns the server w|
00005300  61 73 20 65 69 74 68 65  72 20 6e 6f 74 20 73 74  |as either not st|
00005310  61 72 74 65 64 20 6f 72  20 69 73 20 6e 6f 74 20  |arted or is not |
00005320  63 61 70 61 62 6c 65 20  6f 66 20 68 61 6e 64 6c  |capable of handl|
00005330  69 6e 67 20 74 68 65 20  72 65 71 75 65 73 74 2e  |ing the request.|
00005340  0a 0a 53 65 73 73 69 6f  6e 20 74 79 70 65 20 32  |..Session type 2|
00005350  20 69 73 20 75 73 65 64  20 77 68 65 6e 20 61 20  | is used when a |
00005360  6c 69 6e 6b 20 61 6c 72  65 61 64 79 20 69 73 20  |link already is |
00005370  65 73 74 61 62 6c 69 73  68 65 64 2e 44 41 54 41  |established.DATA|
00005380  61 01 00 00 4d 65 73 73  61 67 65 5f 4f 4c 45 4f  |a...Message_OLEO|
00005390  70 65 6e 53 65 73 73 69  6f 6e 41 63 6b 20 20 28  |penSessionAck  (|
000053a0  26 38 30 45 32 32 29 0a  23 50 61 72 65 6e 74 20  |&80E22).#Parent |
000053b0  4d 53 47 5f 0a 54 68 69  73 20 69 73 20 72 65 74  |MSG_.This is ret|
000053c0  75 72 6e 65 64 20 69 6e  20 72 65 70 6c 79 20 74  |urned in reply t|
000053d0  6f 20 61 6e 20 4f 4c 45  4f 70 65 6e 53 65 73 73  |o an OLEOpenSess|
000053e0  69 6f 6e 20 6d 65 73 73  61 67 65 2e 20 53 65 72  |ion message. Ser|
000053f0  76 65 72 20 68 61 73 20  6c 6f 61 64 65 64 20 66  |ver has loaded f|
00005400  69 6c 65 2c 20 61 6e 64  20 68 61 73 20 65 73 74  |ile, and has est|
00005410  61 62 6c 69 73 68 65 64  20 74 68 65 20 6c 69 6e  |ablished the lin|
00005420  6b 2e 0a 0a 57 68 61 74  20 73 68 6f 75 6c 64 20  |k...What should |
00005430  68 61 70 70 65 6e 20 69  66 20 73 65 72 76 65 72  |happen if server|
00005440  20 67 65 74 73 20 61 6e  20 65 72 72 6f 72 20 77  | gets an error w|
00005450  68 69 6c 65 20 72 65 61  64 69 6e 67 20 66 69 6c  |hile reading fil|
00005460  65 3f 20 28 50 72 6f 74  65 63 74 69 6f 6e 20 6f  |e? (Protection o|
00005470  72 20 6e 6f 74 20 65 6e  6f 75 67 68 20 6d 65 6d  |r not enough mem|
00005480  6f 72 79 29 20 49 74 20  73 68 6f 75 6c 64 20 70  |ory) It should p|
00005490  72 6f 62 61 62 6c 79 20  73 65 6e 64 20 74 68 69  |robably send thi|
000054a0  73 20 6d 65 73 73 61 67  65 20 69 6d 6d 65 64 69  |s message immedi|
000054b0  61 74 65 6c 79 20 66 6f  6c 6c 6f 77 65 64 20 62  |ately followed b|
000054c0  79 20 61 6e 20 4f 4c 45  43 6c 6f 73 65 53 65 73  |y an OLECloseSes|
000054d0  73 69 6f 6e 20 6d 65 73  73 61 67 65 2e 00 00 00  |sion message....|
000054e0  44 41 54 41 ef 00 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
000054f0  4f 4c 45 43 6c 6f 73 65  53 65 73 73 69 6f 6e 20  |OLECloseSession |
00005500  20 28 26 38 30 45 32 33  29 0a 23 50 61 72 65 6e  | (&80E23).#Paren|
00005510  74 20 4d 53 47 5f 0a 2b  20 32 30 20 4d 65 73 73  |t MSG_.+ 20 Mess|
00005520  61 67 65 20 74 79 70 65  3a 0a 2b 20 32 34 20 53  |age type:.+ 24 S|
00005530  65 73 73 69 6f 6e 20 6e  75 6d 62 65 72 20 28 2d  |ession number (-|
00005540  31 20 66 6f 72 20 61 6c  6c 29 0a 0a 54 68 69 73  |1 for all)..This|
00005550  20 6d 65 73 73 61 67 65  20 69 6e 66 6f 72 6d 73  | message informs|
00005560  20 6f 6e 65 20 6f 72 20  61 6c 6c 20 63 6c 69 65  | one or all clie|
00005570  6e 74 73 20 74 68 61 74  20 6f 6e 65 20 6f 72 20  |nts that one or |
00005580  61 6c 6c 20 6f 66 20 74  68 65 20 73 65 72 76 65  |all of the serve|
00005590  72 73 20 73 65 73 73 69  6f 6e 73 20 61 72 65 20  |rs sessions are |
000055a0  74 65 72 6d 69 6e 61 74  65 64 20 28 54 61 73 6b  |terminated (Task|
000055b0  20 71 75 69 74 20 6f 72  20 63 6c 69 63 6b 20 6f  | quit or click o|
000055c0  6e 20 63 6c 6f 73 65 20  77 69 6e 64 6f 77 29 00  |n close window).|
000055d0  44 41 54 41 c3 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
000055e0  50 61 6c 65 74 74 65 43  68 61 6e 67 65 20 28 39  |PaletteChange (9|
000055f0  29 0a 23 50 61 72 65 6e  74 20 4d 73 67 5f 0a 54  |).#Parent Msg_.T|
00005600  68 69 73 20 6d 65 73 73  61 67 65 20 69 73 20 62  |his message is b|
00005610  72 6f 61 64 63 61 73 74  65 64 20 62 79 20 74 68  |roadcasted by th|
00005620  65 20 70 61 6c 65 74 74  65 20 75 74 69 6c 69 74  |e palette utilit|
00005630  79 20 77 68 65 6e 20 74  68 65 20 52 47 42 20 76  |y when the RGB v|
00005640  61 6c 75 65 20 66 6f 72  20 6f 6e 65 20 6f 72 20  |alue for one or |
00005650  6d 6f 72 65 20 70 68 79  73 69 63 61 6c 20 63 6f  |more physical co|
00005660  6c 6f 75 72 73 20 68 61  76 65 20 63 68 61 6e 67  |lours have chang|
00005670  65 64 2e 20 3c 4d 65 73  73 61 67 65 5f 4d 6f 64  |ed. <Message_Mod|
00005680  65 43 68 61 6e 67 65 3d  3e 4d 53 47 5f 34 30 30  |eChange=>MSG_400|
00005690  43 31 3e 20 69 73 20 62  72 6f 61 64 63 61 73 74  |C1> is broadcast|
000056a0  20 2a 69 6e 73 74 65 61  64 2a 20 6f 66 20 74 68  | *instead* of th|
000056b0  69 73 20 6d 65 73 73 61  67 65 20 61 74 20 61 20  |is message at a |
000056c0  6d 6f 64 65 20 63 68 61  6e 67 65 2e 0a 0a 49 6e  |mode change...In|
000056d0  20 32 35 36 20 63 6f 6c  6f 75 72 20 6d 6f 64 65  | 256 colour mode|
000056e0  73 2c 20 69 74 20 69 73  20 6e 6f 74 20 74 68 65  |s, it is not the|
000056f0  20 70 68 79 73 69 63 61  6c 20 63 6f 6c 6f 75 72  | physical colour|
00005700  20 77 68 69 63 68 20 63  68 61 6e 67 65 73 2c 20  | which changes, |
00005710  62 75 74 20 6f 6e 6c 79  20 74 68 65 20 6d 61 70  |but only the map|
00005720  70 69 6e 67 20 66 72 6f  6d 20 6c 6f 67 69 63 61  |ping from logica|
00005730  6c 20 74 6f 20 70 68 79  73 69 63 61 6c 20 63 6f  |l to physical co|
00005740  6c 6f 75 72 2e 20 49 6e  20 74 68 61 74 20 63 61  |lour. In that ca|
00005750  73 65 20 74 68 65 20 70  61 6c 65 74 74 65 20 75  |se the palette u|
00005760  74 69 6c 69 74 79 20 69  74 73 65 6c 66 20 66 6f  |tility itself fo|
00005770  72 63 65 73 20 61 20 72  65 64 72 61 77 20 6f 66  |rces a redraw of|
00005780  20 74 68 65 20 77 68 6f  6c 65 20 73 63 72 65 65  | the whole scree|
00005790  6e 2e 0a 00 44 41 54 41  46 01 00 00 4d 65 73 73  |n...DATAF...Mess|
000057a0  61 67 65 5f 53 61 76 65  44 65 73 6b 74 6f 70 20  |age_SaveDesktop |
000057b0  28 31 30 29 0a 23 50 61  72 65 6e 74 20 4d 53 47  |(10).#Parent MSG|
000057c0  5f 0a 2b 32 30 09 66 69  6c 65 20 68 61 6e 64 6c  |_.+20.file handl|
000057d0  65 20 6f 66 20 64 65 73  6b 74 6f 70 20 66 69 6c  |e of desktop fil|
000057e0  65 20 62 65 69 6e 67 20  77 72 69 74 74 65 6e 20  |e being written |
000057f0  61 73 20 61 20 77 6f 72  64 0a 2b 32 34 09 66 6c  |as a word.+24.fl|
00005800  61 67 73 2c 20 61 74 20  70 72 65 73 65 6e 74 20  |ags, at present |
00005810  72 65 73 65 72 76 65 64  20 28 6d 75 73 74 20 62  |reserved (must b|
00005820  65 20 30 29 0a 0a 54 68  69 73 20 6d 65 73 73 61  |e 0)..This messa|
00005830  67 65 20 69 73 20 62 72  6f 61 64 63 61 73 74 65  |ge is broadcaste|
00005840  64 20 62 79 20 74 68 65  20 74 61 73 6b 20 6d 61  |d by the task ma|
00005850  6e 61 67 65 72 20 77 68  65 6e 20 74 68 65 20 75  |nager when the u|
00005860  73 65 72 20 68 61 73 20  73 65 6c 65 63 74 65 64  |ser has selected|
00005870  20 22 53 61 76 65 20 62  6f 6f 74 20 66 69 6c 65  | "Save boot file|
00005880  22 2c 20 6f 72 20 6f 6e  20 65 78 69 74 20 66 72  |", or on exit fr|
00005890  6f 6d 20 64 65 73 6b 74  6f 70 20 69 66 20 74 68  |om desktop if th|
000058a0  65 20 73 79 73 74 65 6d  20 76 61 72 69 61 62 6c  |e system variabl|
000058b0  65 20 53 61 76 65 44 65  73 6b 24 46 69 6c 65 20  |e SaveDesk$File |
000058c0  68 61 73 20 61 20 76 61  6c 75 65 20 28 61 20 70  |has a value (a p|
000058d0  61 74 68 6e 61 6d 65 2e  2e 29 00 00 44 41 54 41  |athname..)..DATA|
000058e0  e8 03 00 00 45 78 74 65  72 6e 61 6c 20 45 64 69  |....External Edi|
000058f0  74 20 50 72 6f 74 6f 63  6f 6c 20 20 20 20 0a 23  |t Protocol    .#|
00005900  41 6c 69 67 6e 20 43 65  6e 74 72 65 0a 7b 2a 7d  |Align Centre.{*}|
00005910  44 65 73 69 67 6e 65 64  20 62 79 20 3c 4a 61 73  |Designed by <Jas|
00005920  6f 6e 20 57 69 6c 6c 69  61 6d 73 3d 3e 4d 73 67  |on Williams=>Msg|
00005930  5f 45 78 74 45 64 69 74  4d 6f 64 65 72 61 74 6f  |_ExtEditModerato|
00005940  72 3e 7b 2a 7d 0a 56 65  72 73 69 6f 6e 20 31 2e  |r>{*}.Version 1.|
00005950  30 32 53 2c 20 33 30 20  4d 61 72 20 31 39 39 36  |02S, 30 Mar 1996|
00005960  20 28 66 72 6f 6d 20 31  2e 30 32 2c 20 31 20 4a  | (from 1.02, 1 J|
00005970  61 6e 20 31 39 39 33 29  0a 23 41 6c 69 67 6e 0a  |an 1993).#Align.|
00005980  0a 54 68 65 20 70 72 6f  74 6f 63 6f 6c 20 63 6f  |.The protocol co|
00005990  6e 73 69 73 74 73 20 6f  66 20 74 68 65 73 65 20  |nsists of these |
000059a0  66 69 76 65 20 6d 65 73  73 61 67 65 73 20 3a 0a  |five messages :.|
000059b0  20 20 20 20 0a 20 20 20  3c 4d 65 73 73 61 67 65  |    .   <Message|
000059c0  5f 45 64 69 74 52 71 3d  3e 4d 73 67 5f 34 35 64  |_EditRq=>Msg_45d|
000059d0  38 30 3e 0a 20 20 20 3c  4d 65 73 73 61 67 65 5f  |80>.   <Message_|
000059e0  45 64 69 74 41 63 6b 3d  3e 4d 73 67 5f 34 35 64  |EditAck=>Msg_45d|
000059f0  38 31 3e 0a 20 20 20 3c  4d 65 73 73 61 67 65 5f  |81>.   <Message_|
00005a00  45 64 69 74 52 65 74 75  72 6e 3d 3e 4d 73 67 5f  |EditReturn=>Msg_|
00005a10  34 35 64 38 32 3e 0a 20  20 20 3c 4d 65 73 73 61  |45d82>.   <Messa|
00005a20  67 65 5f 45 64 69 74 41  62 6f 72 74 3d 3e 4d 73  |ge_EditAbort=>Ms|
00005a30  67 5f 34 35 64 38 33 3e  0a 20 20 20 3c 4d 65 73  |g_45d83>.   <Mes|
00005a40  73 61 67 65 5f 45 64 69  74 44 61 74 61 53 61 76  |sage_EditDataSav|
00005a50  65 3d 3e 4d 73 67 5f 34  35 64 38 34 3e 0a 20 20  |e=>Msg_45d84>.  |
00005a60  20 3c 4d 65 73 73 61 67  65 5f 45 64 69 74 43 75  | <Message_EditCu|
00005a70  72 73 6f 72 3d 3e 4d 73  67 5f 34 35 64 38 35 3e  |rsor=>Msg_45d85>|
00005a80  0a 0a 54 68 65 20 70 75  72 70 6f 73 65 20 6f 66  |..The purpose of|
00005a90  20 74 68 65 20 70 72 6f  74 6f 63 6f 6c 20 69 73  | the protocol is|
00005aa0  20 74 6f 20 61 6c 6c 6f  77 20 6f 6e 65 20 74 61  | to allow one ta|
00005ab0  73 6b 20 28 74 68 65 20  22 3c 43 6c 69 65 6e 74  |sk (the "<Client|
00005ac0  73 3d 3e 4d 73 67 5f 45  78 74 45 64 69 74 43 6c  |s=>Msg_ExtEditCl|
00005ad0  69 65 6e 74 3e 22 29 20  74 6f 20 73 65 6e 64 20  |ient>") to send |
00005ae0  69 74 73 20 64 61 74 61  20 74 6f 20 61 6e 6f 74  |its data to anot|
00005af0  68 65 72 20 74 61 73 6b  20 28 74 68 65 20 22 3c  |her task (the "<|
00005b00  45 64 69 74 6f 72 3d 3e  4d 73 67 5f 45 78 74 45  |Editor=>Msg_ExtE|
00005b10  64 69 74 45 64 69 74 6f  72 3e 22 29 20 66 6f 72  |ditEditor>") for|
00005b20  20 65 64 69 74 69 6e 67  2c 20 77 69 74 68 6f 75  | editing, withou|
00005b30  74 20 66 6f 72 63 69 6e  67 20 74 68 65 20 75 73  |t forcing the us|
00005b40  65 72 20 74 6f 20 22 64  72 61 67 20 74 68 69 6e  |er to "drag thin|
00005b50  67 73 20 61 6c 6c 20 6f  76 65 72 20 74 68 65 20  |gs all over the |
00005b60  70 6c 61 63 65 2e 2e 22  0a 0a 41 70 70 6c 69 63  |place.."..Applic|
00005b70  61 74 69 6f 6e 73 20 73  75 70 70 6f 72 74 69 6e  |ations supportin|
00005b80  67 20 74 68 65 20 70 72  6f 74 6f 63 6f 6c 20 69  |g the protocol i|
00005b90  6e 63 6c 75 64 65 20 3a  0a 43 6c 69 65 6e 74 73  |nclude :.Clients|
00005ba0  20 3a 0a 23 49 6e 64 65  6e 74 20 32 0a 23 54 61  | :.#Indent 2.#Ta|
00005bb0  62 6c 65 20 4c 69 6e 65  73 20 32 0a 21 4f 4c 52  |ble Lines 2.!OLR|
00005bc0  65 61 64 0a 21 4a 46 41  64 64 72 65 73 73 0a 21  |ead.!JFAddress.!|
00005bd0  4e 6f 74 65 49 74 0a 21  46 69 64 6f 4d 61 69 6c  |NoteIt.!FidoMail|
00005be0  0a 21 4d 61 6b 65 41 52  50 43 0a 23 45 6e 64 54  |.!MakeARPC.#EndT|
00005bf0  61 62 6c 65 0a 23 49 6e  64 65 6e 74 0a 0a 45 64  |able.#Indent..Ed|
00005c00  69 74 6f 72 73 20 3a 0a  23 49 6e 64 65 6e 74 20  |itors :.#Indent |
00005c10  32 0a 23 54 61 62 6c 65  20 4c 69 6e 65 73 20 32  |2.#Table Lines 2|
00005c20  0a 21 53 74 72 6f 6e 67  45 44 0a 21 5a 61 70 20  |.!StrongED.!Zap |
00005c30  31 2e 32 30 0a 21 44 4a  46 2d 4a 52 46 0a 21 46  |1.20.!DJF-JRF.!F|
00005c40  6f 72 6d 45 64 45 78 74  0a 23 45 6e 64 54 61 62  |ormEdExt.#EndTab|
00005c50  6c 65 0a 23 49 6e 64 65  6e 74 0a 0a 48 6f 77 20  |le.#Indent..How |
00005c60  75 73 65 66 75 6c 20 74  68 69 73 20 70 72 6f 74  |useful this prot|
00005c70  6f 63 6f 6c 20 77 69 6c  6c 20 62 65 2c 20 64 65  |ocol will be, de|
00005c80  70 65 6e 64 73 20 6f 6e  20 68 6f 77 20 6d 61 6e  |pends on how man|
00005c90  79 20 74 61 73 6b 73 20  73 75 70 70 6f 72 74 20  |y tasks support |
00005ca0  69 74 2c 20 62 6f 74 68  20 61 73 20 22 43 6c 69  |it, both as "Cli|
00005cb0  65 6e 74 22 20 61 6e 64  20 22 45 64 69 74 6f 72  |ent" and "Editor|
00005cc0  73 22 2e 0a 44 41 54 41  db 03 00 00 4e 65 77 73  |s"..DATA....News|
00005cd0  42 61 73 65 20 6d 65 73  73 61 67 65 20 70 72 6f  |Base message pro|
00005ce0  74 6f 63 6f 6c 0a 54 68  72 65 65 20 6d 65 73 73  |tocol.Three mess|
00005cf0  61 67 65 73 20 61 72 65  20 64 65 66 69 6e 65 64  |ages are defined|
00005d00  3a 0a 23 49 6e 64 65 6e  74 20 32 0a 3c 4e 65 77  |:.#Indent 2.<New|
00005d10  73 42 61 73 65 5f 43 6f  6d 6d 61 6e 64 3d 3e 4d  |sBase_Command=>M|
00005d20  73 67 5f 38 33 35 38 30  3e 09 75 73 65 64 20 62  |sg_83580>.used b|
00005d30  79 20 61 20 63 6c 69 65  6e 74 20 74 6f 20 69 73  |y a client to is|
00005d40  73 75 65 20 63 6f 6d 6d  61 6e 64 73 20 6f 72 20  |sue commands or |
00005d50  72 65 71 75 65 73 74 73  20 74 6f 20 4e 65 77 73  |requests to News|
00005d60  42 61 73 65 0a 3c 4e 65  77 73 42 61 73 65 5f 52  |Base.<NewsBase_R|
00005d70  65 70 6c 79 3d 3e 4d 73  67 5f 38 33 35 38 31 3e  |eply=>Msg_83581>|
00005d80  09 09 75 73 65 64 20 62  79 20 6e 65 77 73 62 61  |..used by newsba|
00005d90  73 65 20 74 6f 20 72 65  73 70 6f 6e 64 0a 3c 4e  |se to respond.<N|
00005da0  65 77 73 42 61 73 65 5f  55 70 64 61 74 65 3d 3e  |ewsBase_Update=>|
00005db0  4d 73 67 5f 38 33 35 38  32 3e 09 09 62 72 6f 61  |Msg_83582>..broa|
00005dc0  64 63 61 73 74 20 62 79  20 6e 65 77 73 62 61 73  |dcast by newsbas|
00005dd0  65 20 74 6f 20 69 6e 66  6f 72 6d 20 63 6c 69 65  |e to inform clie|
00005de0  6e 74 73 20 6f 66 20 63  68 61 6e 67 65 73 20 74  |nts of changes t|
00005df0  6f 20 74 68 65 20 6e 65  77 73 20 64 61 74 61 62  |o the news datab|
00005e00  61 73 65 0a 23 49 6e 64  65 6e 74 20 30 0a 0a 54  |ase.#Indent 0..T|
00005e10  68 65 20 63 6f 6d 6d 61  6e 64 73 20 69 6d 70 6c  |he commands impl|
00005e20  65 6d 65 6e 74 65 64 20  61 72 65 20 62 61 73 65  |emented are base|
00005e30  64 20 76 65 72 79 20 6c  6f 6f 73 65 6c 79 20 6f  |d very loosely o|
00005e40  6e 20 74 68 65 20 4e 4e  54 50 20 63 6f 6d 6d 61  |n the NNTP comma|
00005e50  6e 64 73 20 64 6f 63 75  6d 65 6e 74 65 64 20 69  |nds documented i|
00005e60  6e 20 52 46 43 39 37 37  20 28 6d 6f 72 65 20 69  |n RFC977 (more i|
00005e70  6e 20 73 70 69 72 69 74  20 74 68 61 6e 20 69 6e  |n spirit than in|
00005e80  20 66 6f 72 6d 29 2e 20  57 68 69 6c 65 20 74 68  | form). While th|
00005e90  65 20 4e 65 77 73 42 61  73 65 20 63 6f 6d 6d 61  |e NewsBase comma|
00005ea0  6e 64 73 20 61 72 65 20  70 72 69 6d 61 72 69 6c  |nds are primaril|
00005eb0  79 20 64 65 73 69 67 6e  65 64 20 74 6f 20 72 65  |y designed to re|
00005ec0  74 72 69 65 76 65 20 6e  65 77 73 20 66 72 6f 6d  |trieve news from|
00005ed0  20 61 20 6c 6f 63 61 6c  6c 79 2d 68 65 6c 64 20  | a locally-held |
00005ee0  6e 65 77 73 20 64 61 74  61 62 61 73 65 20 6d 61  |news database ma|
00005ef0  6e 61 67 65 64 20 62 79  20 4e 65 77 73 42 61 73  |naged by NewsBas|
00005f00  65 2c 20 74 68 65 69 72  20 6e 61 74 75 72 65 20  |e, their nature |
00005f10  73 68 6f 75 6c 64 20 6d  61 6b 65 20 69 74 20 70  |should make it p|
00005f20  6f 73 73 69 62 6c 65 20  66 6f 72 20 66 75 74 75  |ossible for futu|
00005f30  72 65 20 76 65 72 73 69  6f 6e 73 20 6f 66 20 6e  |re versions of n|
00005f40  65 77 73 62 61 73 65 20  74 6f 20 61 63 74 20 61  |ewsbase to act a|
00005f50  73 20 61 20 6d 65 64 69  61 74 6f 72 20 62 65 74  |s a mediator bet|
00005f60  77 65 65 6e 20 61 20 63  6c 69 65 6e 74 20 72 65  |ween a client re|
00005f70  61 64 65 72 20 61 6e 64  20 61 20 64 69 72 65 63  |ader and a direc|
00005f80  74 6c 79 2d 63 6f 6e 6e  65 63 74 65 64 20 6e 6e  |tly-connected nn|
00005f90  74 70 20 73 65 72 76 65  72 20 28 74 68 72 6f 75  |tp server (throu|
00005fa0  67 68 20 65 74 68 65 72  6e 65 74 20 61 6e 64 20  |gh ethernet and |
00005fb0  41 63 6f 72 6e 20 54 43  50 2f 49 50 2c 20 6f 72  |Acorn TCP/IP, or|
00005fc0  20 77 68 61 74 65 76 65  72 29 20 2d 20 69 65 2c  | whatever) - ie,|
00005fd0  20 6f 6e 65 20 6f 66 20  74 68 65 20 70 75 72 70  | one of the purp|
00005fe0  6f 73 65 73 20 6f 66 20  74 68 65 20 63 6f 6d 6d  |oses of the comm|
00005ff0  61 6e 64 20 73 65 74 20  69 73 20 74 6f 20 61 63  |and set is to ac|
00006000  74 20 61 73 20 61 6e 20  61 62 73 74 72 61 63 74  |t as an abstract|
00006010  69 6f 6e 20 6c 61 79 65  72 20 62 65 74 77 65 65  |ion layer betwee|
00006020  6e 20 74 68 65 20 72 65  61 64 65 72 20 70 72 6f  |n the reader pro|
00006030  67 72 61 6d 20 61 6e 64  20 74 68 65 20 73 6f 75  |gram and the sou|
00006040  72 63 65 20 6f 66 20 6e  65 77 73 2e 0a 0a 28 54  |rce of news...(T|
00006050  68 69 73 20 64 61 74 61  20 65 78 74 72 61 63 74  |his data extract|
00006060  65 64 20 66 72 6f 6d 20  74 68 65 20 44 6f 63 73  |ed from the Docs|
00006070  2e 4d 65 73 73 61 67 65  73 20 66 69 6c 65 20 69  |.Messages file i|
00006080  6e 20 21 4e 65 77 73 42  61 73 65 20 62 79 20 4a  |n !NewsBase by J|
00006090  75 73 74 69 6e 20 46 6c  65 74 63 68 65 72 29 00  |ustin Fletcher).|
000060a0  44 41 54 41 47 12 00 00  52 49 53 43 20 4f 53 20  |DATAG...RISC OS |
000060b0  33 20 21 48 65 6c 70 20  63 6f 64 65 73 0a 43 6f  |3 !Help codes.Co|
000060c0  64 65 09 4d 65 73 73 61  67 65 0a 23 4c 69 6e 65  |de.Message.#Line|
000060d0  0a 5c 5c 52 09 22 4d 6f  76 65 20 74 68 65 20 70  |.\\R."Move the p|
000060e0  6f 69 6e 74 65 72 20 72  69 67 68 74 20 74 6f 20  |ointer right to |
000060f0  22 0a 5c 5c 47 09 22 54  68 69 73 20 6f 70 74 69  |".\\G."This opti|
00006100  6f 6e 20 69 73 20 67 72  65 79 65 64 20 6f 75 74  |on is greyed out|
00006110  20 62 65 63 61 75 73 65  20 22 0a 5c 5c 53 09 22  | because ".\\S."|
00006120  43 6c 69 63 6b 20 53 45  4c 45 43 54 20 74 6f 20  |Click SELECT to |
00006130  22 0a 5c 5c 41 09 22 43  6c 69 63 6b 20 41 44 4a  |".\\A."Click ADJ|
00006140  55 53 54 20 74 6f 20 22  0a 5c 5c 54 09 22 54 68  |UST to ".\\T."Th|
00006150  69 73 20 69 73 20 74 68  65 20 22 0a 5c 5c 57 09  |is is the ".\\W.|
00006160  22 54 68 69 73 20 77 69  6e 64 6f 77 20 69 73 20  |"This window is |
00006170  22 0a 5c 5c 44 09 22 44  72 61 67 20 53 45 4c 45  |".\\D."Drag SELE|
00006180  43 54 20 74 6f 20 22 0a  5c 5c 64 09 22 44 72 61  |CT to ".\\d."Dra|
00006190  67 20 41 44 4a 55 53 54  20 74 6f 20 22 0a 5c 5c  |g ADJUST to ".\\|
000061a0  77 09 22 77 69 6e 64 6f  77 22 0a 5c 5c 73 09 22  |w."window".\\s."|
000061b0  53 45 4c 45 43 54 22 0a  5c 5c 61 09 22 41 44 4a  |SELECT".\\a."ADJ|
000061c0  55 53 54 22 0a 7c 4d 09  72 65 74 75 72 6e 0a 0a  |UST".|M.return..|
000061d0  42 79 20 52 49 53 43 20  4f 53 20 33 2e 37 20 74  |By RISC OS 3.7 t|
000061e0  68 65 72 65 20 61 72 65  20 61 64 64 69 74 69 6f  |here are additio|
000061f0  6e 61 6c 20 63 6f 64 65  73 3a 0a 0a 5c 5c 30 09  |nal codes:..\\0.|
00006200  22 20 66 6f 72 20 74 72  69 61 6e 67 6c 65 73 20  |" for triangles |
00006210  28 69 6e 20 6d 75 6c 74  69 70 6c 65 73 20 6f 66  |(in multiples of|
00006220  20 74 68 65 20 70 61 74  68 20 77 69 64 74 68 29  | the path width)|
00006230  2e 22 0a 5c 5c 31 09 22  69 6e 67 22 0a 5c 5c 32  |.".\\1."ing".\\2|
00006240  09 22 20 69 6e 20 74 68  65 20 22 0a 5c 5c 33 09  |." in the ".\\3.|
00006250  22 65 64 20 22 0a 5c 5c  34 09 22 20 74 68 65 20  |"ed ".\\4." the |
00006260  67 65 6e 65 72 61 6c 20  70 75 62 6c 69 63 22 0a  |general public".|
00006270  5c 5c 35 09 22 70 61 74  68 20 65 6c 65 6d 65 6e  |\\5."path elemen|
00006280  74 22 0a 5c 5c 36 09 22  74 65 78 74 20 6c 69 6e  |t".\\6."text lin|
00006290  65 22 0a 5c 5c 37 09 22  72 65 73 73 20 22 0a 5c  |e".\\7."ress ".\|
000062a0  5c 38 09 22 65 20 74 68  65 20 22 0a 5c 5c 39 09  |\8."e the ".\\9.|
000062b0  22 43 6c 69 63 6b 20 68  65 72 65 20 6f 72 20 74  |"Click here or t|
000062c0  79 70 65 20 22 0a 5c 5c  40 09 22 20 74 68 65 20  |ype ".\\@." the |
000062d0  22 0a 5c 5c 42 09 22 6c  69 63 6b 20 20 22 0a 5c  |".\\B."lick  ".\|
000062e0  5c 43 09 22 20 74 6f 20  22 0a 5c 5c 45 09 22 73  |\C." to ".\\E."s|
000062f0  65 6c 65 63 74 22 0a 5c  5c 46 09 22 73 70 72 69  |elect".\\F."spri|
00006300  74 65 22 0a 5c 5c 48 09  22 64 69 72 65 63 74 6f  |te".\\H."directo|
00006310  72 79 22 0a 5c 5c 49 09  22 20 6f 62 6a 65 63 74  |ry".\\I." object|
00006320  22 0a 5c 5c 4a 09 22 63  68 61 6e 67 65 20 74 68  |".\\J."change th|
00006330  65 20 22 0a 5c 5c 4b 09  22 20 74 68 69 73 20 22  |e ".\\K." this "|
00006340  0a 5c 5c 4c 09 22 43 6c  69 63 6b 20 20 28 6f 72  |.\\L."Click  (or|
00006350  20 70 72 65 73 73 20 22  0a 5c 5c 4d 09 22 74 69  | press ".\\M."ti|
00006360  6f 6e 22 0a 5c 5c 4e 09  22 20 61 6e 64 20 22 0a  |on".\\N." and ".|
00006370  5c 5c 4f 09 22 64 69 73  70 6c 61 79 22 0a 5c 5c  |\\O."display".\\|
00006380  50 09 22 20 74 68 65 20  63 75 72 72 65 6e 74 22  |P." the current"|
00006390  0a 5c 5c 51 09 22 66 69  6c 65 22 0a 5c 5c 55 09  |.\\Q."file".\\U.|
000063a0  22 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 20 61 62  |" information ab|
000063b0  6f 75 74 22 0a 5c 5c 56  09 22 54 68 69 73 20 22  |out".\\V."This "|
000063c0  0a 5c 5c 58 09 22 61 70  70 6c 69 63 61 74 69 6f  |.\\X."applicatio|
000063d0  6e 22 0a 5c 5c 59 09 22  20 6f 66 20 74 68 65 20  |n".\\Y." of the |
000063e0  22 0a 5c 5c 5a 09 22 63  6f 6c 6f 75 72 22 0a 5c  |".\\Z."colour".\|
000063f0  5c 5e 09 22 4d 6f 76 65  20 74 68 65 20 70 6f 69  |\^."Move the poi|
00006400  6e 74 65 72 20 72 69 67  68 74 22 0a 5c 5c 5f 09  |nter right".\\_.|
00006410  22 63 68 61 72 61 63 74  65 72 22 0a 5c 5c 62 09  |"character".\\b.|
00006420  22 20 6f 72 20 22 0a 5c  5c 63 09 22 20 74 68 69  |" or ".\\c." thi|
00006430  73 20 73 70 72 69 74 65  2c 20 61 74 20 74 68 65  |s sprite, at the|
00006440  20 70 6f 73 69 74 69 6f  6e 20 79 6f 75 20 77 65  | position you we|
00006450  72 65 20 70 6f 69 6e 74  69 6e 67 20 61 74 20 77  |re pointing at w|
00006460  68 65 6e 20 79 6f 75 20  70 72 65 73 73 65 64 20  |hen you pressed |
00006470  4d 45 4e 55 2e 22 0a 5c  5c 65 09 22 20 69 6e 22  |MENU.".\\e." in"|
00006480  0a 5c 5c 66 09 22 20 6f  66 20 22 0a 5c 5c 67 09  |.\\f." of ".\\g.|
00006490  22 63 6f 6e 74 72 6f 6c  22 0a 5c 5c 68 09 22 6e  |"control".\\h."n|
000064a0  75 6d 62 65 72 22 0a 5c  5c 69 09 22 20 61 20 22  |umber".\\i." a "|
000064b0  0a 5c 5c 6a 09 22 20 6f  70 65 72 61 74 69 6f 6e  |.\\j." operation|
000064c0  22 0a 5c 5c 6b 09 22 44  6f 75 62 6c 65 2d 63 6c  |".\\k."Double-cl|
000064d0  69 63 6b 20 22 0a 5c 5c  6c 09 22 70 61 74 68 22  |ick ".\\l."path"|
000064e0  0a 5c 5c 6d 09 22 54 6f  20 70 61 69 6e 74 20 65  |.\\m."To paint e|
000064f0  61 63 68 20 22 0a 5c 5c  6e 09 22 20 77 69 74 68  |ach ".\\n." with|
00006500  22 0a 5c 5c 6f 09 22 69  63 6f 6e 22 0a 5c 5c 70  |".\\o."icon".\\p|
00006510  09 22 65 6e 74 22 0a 5c  5c 71 09 22 54 68 65 20  |."ent".\\q."The |
00006520  46 6f 72 63 65 20 6f 70  74 69 6f 6e 20 64 65 74  |Force option det|
00006530  65 72 6d 69 6e 65 73 20  77 68 65 74 68 65 72 20  |ermines whether |
00006540  6f 72 20 6e 6f 74 20 6c  6f 63 6b 65 64 20 6f 62  |or not locked ob|
00006550  6a 65 63 74 73 20 77 69  6c 6c 20 62 65 20 64 65  |jects will be de|
00006560  6c 65 74 65 64 2e 22 0a  5c 5c 72 09 22 65 20 74  |leted.".\\r."e t|
00006570  68 65 20 73 70 72 69 74  65 20 69 6e 20 74 68 65  |he sprite in the|
00006580  20 73 65 6c 65 63 74 65  64 20 73 70 72 69 74 65  | selected sprite|
00006590  20 66 69 6c 65 20 6f 6e  20 74 68 65 20 64 65 73  | file on the des|
000065a0  6b 74 6f 70 20 62 61 63  6b 67 72 6f 75 6e 64 2e  |ktop background.|
000065b0  22 0a 5c 5c 74 09 22 20  66 6f 72 22 0a 5c 5c 75  |".\\t." for".\\u|
000065c0  09 22 73 65 6c 65 63 74  65 64 20 6f 62 6a 65 63  |."selected objec|
000065d0  74 22 0a 5c 5c 76 09 22  20 67 72 69 64 20 70 6f  |t".\\v." grid po|
000065e0  69 6e 74 22 0a 5c 5c 78  09 22 20 74 68 65 20 64  |int".\\x." the d|
000065f0  69 73 63 20 69 6e 20 64  72 69 76 65 20 22 0a 5c  |isc in drive ".\|
00006600  5c 79 09 22 20 66 69 6c  65 20 73 65 72 76 65 72  |\y." file server|
00006610  22 0a 5c 5c 7a 09 22 63  68 61 6e 67 65 22 0a 5c  |".\\z."change".\|
00006620  5c 80 09 22 20 65 6e 74  72 79 20 6d 6f 64 65 22  |\.." entry mode"|
00006630  0a 5c 5c 81 09 22 54 68  69 73 20 6f 70 74 69 6f  |.\\.."This optio|
00006640  6e 20 69 73 20 73 68 61  64 65 64 20 62 65 63 61  |n is shaded beca|
00006650  75 73 65 20 22 0a 5c 5c  82 09 22 20 66 72 6f 6d  |use ".\\.." from|
00006660  22 0a 5c 5c 83 09 22 44  72 61 67 20 53 45 4c 45  |".\\.."Drag SELE|
00006670  43 54 20 74 6f 20 63 6f  70 79 20 74 68 65 20 22  |CT to copy the "|
00006680  0a 5c 5c 84 09 22 54 6f  20 70 61 69 6e 74 20 65  |.\\.."To paint e|
00006690  61 63 68 20 65 6c 6c 69  70 73 65 2c 20 63 6c 69  |ach ellipse, cli|
000066a0  63 6b 20 20 61 74 20 69  74 73 20 63 65 6e 74 72  |ck  at its centr|
000066b0  65 2c 20 61 74 20 61 20  70 6f 69 6e 74 20 74 68  |e, at a point th|
000066c0  61 74 20 67 69 76 65 73  20 74 68 65 20 77 69 64  |at gives the wid|
000066d0  74 68 20 61 74 20 74 68  65 20 63 65 6e 74 72 65  |th at the centre|
000066e0  2c 20 61 6e 64 20 61 74  20 61 20 70 6f 69 6e 74  |, and at a point|
000066f0  20 6f 6e 20 74 68 65 20  65 64 67 65 2e 22 0a 5c  | on the edge.".\|
00006700  5c 85 09 22 73 6f 72 74  20 74 68 65 20 69 74 65  |\.."sort the ite|
00006710  6d 73 20 69 6e 20 74 68  69 73 20 64 69 72 65 63  |ms in this direc|
00006720  74 6f 72 79 20 62 79 20  74 68 65 69 72 20 22 0a  |tory by their ".|
00006730  5c 5c 86 09 22 61 6c 6c  22 0a 5c 5c 87 09 22 43  |\\.."all".\\.."C|
00006740  6c 69 63 6b 20 20 66 6f  72 20 22 0a 5c 5c 88 09  |lick  for ".\\..|
00006750  22 54 68 69 73 20 6c 69  6e 65 20 73 68 6f 77 73  |"This line shows|
00006760  20 74 68 61 74 20 22 0a  5c 5c 89 09 22 20 61 20  | that ".\\.." a |
00006770  73 61 76 65 20 62 6f 78  22 0a 5c 5c 8a 09 22 70  |save box".\\.."p|
00006780  61 69 6e 74 20 22 0a 5c  5c 8b 09 22 72 65 63 74  |aint ".\\.."rect|
00006790  61 6e 67 6c 65 22 0a 5c  5c 8c 09 22 20 45 69 74  |angle".\\.." Eit|
000067a0  68 65 72 20 66 69 6c 6c  20 69 6e 20 74 68 65 20  |her fill in the |
000067b0  6e 75 6d 65 72 61 74 6f  72 20 61 6e 64 20 64 65  |numerator and de|
000067c0  6e 6f 6d 69 6e 61 74 6f  72 2c 20 6f 72 20 63 6c  |nominator, or cl|
000067d0  69 63 6b 20 20 6f 6e 20  74 68 65 20 61 72 72 6f  |ick  on the arro|
000067e0  77 73 2c 20 74 6f 20 75  73 65 20 74 68 65 20 67  |ws, to use the g|
000067f0  69 76 65 6e 20 7a 6f 6f  6d 20 66 61 63 74 6f 72  |iven zoom factor|
00006800  2e 22 0a 5c 5c 8d 09 22  20 63 6c 69 63 6b 20 20  |.".\\.." click  |
00006810  61 74 20 74 68 65 20 63  69 72 63 6c 65 20 63 65  |at the circle ce|
00006820  6e 74 72 65 2c 20 61 6e  64 20 61 74 20 74 68 65  |ntre, and at the|
00006830  20 73 74 61 72 74 20 61  6e 64 20 65 6e 64 20 6f  | start and end o|
00006840  66 20 74 68 65 20 22 0a  5c 5c 8e 09 22 3a 20 63  |f the ".\\..": c|
00006850  6c 69 63 6b 20 6f 6e 20  61 20 70 72 65 73 65 6c  |lick on a presel|
00006860  65 63 74 65 64 20 63 6f  6d 6d 6f 6e 20 76 61 6c  |ected common val|
00006870  75 65 2c 20 6f 72 20 74  79 70 65 20 69 6e 20 61  |ue, or type in a|
00006880  6e 79 20 76 61 6c 75 65  20 69 6e 20 74 68 65 20  |ny value in the |
00006890  62 6f 74 74 6f 6d 20 66  69 65 6c 64 20 61 6e 64  |bottom field and|
000068a0  20 70 72 65 73 73 20 52  45 54 55 52 4e 2e 22 0a  | press RETURN.".|
000068b0  5c 5c 8f 09 22 20 79 6f  75 22 0a 5c 5c 90 09 22  |\\.." you".\\.."|
000068c0  63 72 65 61 74 65 20 61  20 6e 65 77 20 22 0a 5c  |create a new ".\|
000068d0  5c 91 09 22 6d 6f 76 65  20 74 68 65 20 69 63 6f  |\.."move the ico|
000068e0  6e 2e 22 0a 5c 5c 92 09  22 6e 20 74 68 65 20 22  |n.".\\.."n the "|
000068f0  0a 5c 5c 93 09 22 45 69  74 68 65 72 20 64 72 61  |.\\.."Either dra|
00006900  67 20 20 66 72 6f 6d 20  74 68 65 20 66 69 6c 65  |g  from the file|
00006910  20 69 63 6f 6e 20 74 6f  20 61 20 64 69 72 65 63  | icon to a direc|
00006920  74 6f 72 79 20 64 69 73  70 6c 61 79 2c 20 6f 72  |tory display, or|
00006930  20 66 69 6c 6c 20 69 6e  20 74 68 65 20 6e 61 6d  | fill in the nam|
00006940  65 20 6f 66 20 61 20 66  69 6c 65 20 61 6e 64 20  |e of a file and |
00006950  63 6c 69 63 6b 20 20 6f  6e 20 4f 4b 2c 20 74 6f  |click  on OK, to|
00006960  20 73 61 76 65 20 61 73  20 61 20 22 0a 5c 5c 94  | save as a ".\\.|
00006970  09 22 54 79 70 65 20 61  20 6e 75 6d 62 65 72 20  |."Type a number |
00006980  61 6e 64 20 22 0a 5c 5c  95 09 22 61 76 61 69 6c  |and ".\\.."avail|
00006990  61 62 6c 65 22 0a 5c 5c  96 09 22 20 74 6f 20 74  |able".\\.." to t|
000069a0  68 65 20 22 0a 5c 5c 97  09 22 64 69 73 74 61 6e  |he ".\\.."distan|
000069b0  63 65 20 62 65 74 77 65  65 6e 20 6d 61 6a 6f 72  |ce between major|
000069c0  20 67 72 69 64 20 70 6f  69 6e 74 73 22 0a 5c 5c  | grid points".\\|
000069d0  99 09 22 20 75 73 65 64  20 66 6f 72 20 74 65 78  |.." used for tex|
000069e0  74 20 6c 69 6e 65 73 20  28 69 6e 20 70 6f 69 6e  |t lines (in poin|
000069f0  74 73 29 2e 22 0a 5c 5c  9a 09 22 54 68 65 73 65  |ts).".\\.."These|
00006a00  20 72 61 64 69 6f 20 62  75 74 74 6f 6e 73 20 63  | radio buttons c|
00006a10  6f 6e 74 72 6f 6c 20 74  68 65 20 22 0a 5c 5c 9b  |ontrol the ".\\.|
00006a20  09 22 64 65 74 65 72 6d  69 6e 65 20 77 68 65 74  |."determine whet|
00006a30  68 65 72 20 6f 72 20 6e  6f 74 22 0a 5c 5c 9c 09  |her or not".\\..|
00006a40  22 6e 61 6d 65 22 0a 5c  5c 9d 09 22 20 69 73 20  |"name".\\.." is |
00006a50  22 0a 5c 5c 9e 09 22 20  77 68 69 63 68 22 0a 5c  |".\\.." which".\|
00006a60  5c 9f 09 22 68 65 6e 20  22 0a 5c 5c a0 09 22 69  |\.."hen ".\\.."i|
00006a70  6e 62 6f 61 72 64 22 0a  5c 5c a1 09 22 73 65 6c  |nboard".\\.."sel|
00006a80  65 63 74 69 6f 6e 22 0a  5c 5c a2 09 22 65 6e 74  |ection".\\.."ent|
00006a90  65 72 20 61 20 6e 65 77  20 66 69 6c 65 20 74 79  |er a new file ty|
00006aa0  70 65 20 66 6f 72 22 0a  5c 5c a3 09 22 77 69 64  |pe for".\\.."wid|
00006ab0  74 68 22 0a 5c 5c a4 09  22 64 69 73 70 6c 61 79  |th".\\.."display|
00006ac0  20 74 68 65 20 22 0a 5c  5c a5 09 22 63 68 6f 6f  | the ".\\.."choo|
00006ad0  73 65 20 74 68 65 20 22  0a 5c 5c a6 09 22 64 72  |se the ".\\.."dr|
00006ae0  61 77 69 6e 67 22 0a 5c  5c a7 09 22 6d 65 6d 6f  |awing".\\.."memo|
00006af0  72 79 22 0a 5c 5c a9 09  22 54 69 6e 79 44 69 72  |ry".\\.."TinyDir|
00006b00  73 22 0a 5c 5c aa 09 22  63 68 61 6e 67 65 20 74  |s".\\.."change t|
00006b10  68 65 20 6e 75 6d 62 65  72 20 6f 66 20 6d 69 6e  |he number of min|
00006b20  6f 72 20 67 72 69 64 20  70 6f 69 6e 74 73 20 70  |or grid points p|
00006b30  65 72 20 6d 61 6a 6f 72  20 67 72 69 64 20 70 6f  |er major grid po|
00006b40  69 6e 74 2e 22 0a 5c 5c  ab 09 22 64 69 73 63 22  |int.".\\.."disc"|
00006b50  0a 5c 5c ac 09 22 68 6f  72 69 7a 6f 6e 74 61 6c  |.\\.."horizontal|
00006b60  6c 79 22 0a 5c 5c ad 09  22 6c 69 6e 65 22 0a 5c  |ly".\\.."line".\|
00006b70  5c ae 09 22 20 77 69 6c  6c 20 22 0a 5c 5c af 09  |\.." will ".\\..|
00006b80  22 20 74 68 65 20 63 75  72 72 65 6e 74 20 63 6f  |" the current co|
00006b90  6c 6f 75 72 92 63 6f 6c  6f 75 72 20 66 6f 75 6e  |lour.colour foun|
00006ba0  64 20 77 68 65 6e 20 70  6c 6f 74 74 65 64 2e 22  |d when plotted."|
00006bb0  0a 5c 5c b0 09 22 68 65  69 67 68 74 22 0a 5c 5c  |.\\.."height".\\|
00006bc0  b1 09 22 74 20 74 68 65  20 22 0a 5c 5c b2 09 22  |.."t the ".\\.."|
00006bd0  74 6f 67 67 6c 65 20 74  68 65 20 70 72 65 73 65  |toggle the prese|
00006be0  6e 63 65 22 0a 5c 5c b3  09 22 73 74 72 69 6e 67  |nce".\\.."string|
00006bf0  22 0a 5c 5c b4 09 22 63  6f 6e 74 65 6e 74 73 22  |".\\.."contents"|
00006c00  0a 5c 5c b5 09 22 64 65  73 6b 74 6f 70 22 0a 5c  |.\\.."desktop".\|
00006c10  5c b6 09 22 73 63 72 65  65 6e 20 22 0a 5c 5c b7  |\.."screen ".\\.|
00006c20  09 22 20 69 6e 66 6f 72  6d 61 74 69 6f 6e 22 0a  |." information".|
00006c30  5c 5c b9 09 22 20 79 6f  75 20 77 61 6e 74 20 74  |\\.." you want t|
00006c40  6f 20 22 0a 5c 5c ba 09  22 61 6d 6f 75 6e 74 20  |o ".\\.."amount |
00006c50  62 79 20 77 68 69 63 68  20 6c 69 6e 65 20 6e 75  |by which line nu|
00006c60  6d 62 65 72 73 20 75 73  65 64 20 66 6f 72 20 74  |mbers used for t|
00006c70  65 78 74 20 6c 69 6e 65  73 20 28 69 6e 20 70 6f  |ext lines (in po|
00006c80  69 6e 74 73 29 2e 20 69  6e 63 72 65 6d 65 6e 74  |ints). increment|
00006c90  65 64 20 66 6f 72 20 65  61 63 68 20 6e 65 77 20  |ed for each new |
00006ca0  42 41 53 49 43 20 6c 69  6e 65 2e 22 0a 5c 5c bb  |BASIC line.".\\.|
00006cb0  09 22 70 72 65 73 73 20  52 65 74 75 72 6e 22 0a  |."press Return".|
00006cc0  5c 5c bc 09 22 52 45 54  55 52 4e 22 0a 5c 5c bd  |\\.."RETURN".\\.|
00006cd0  09 22 53 45 4c 45 43 54  20 74 6f 20 22 0a 5c 5c  |."SELECT to ".\\|
00006ce0  be 09 22 4d 6f 76 65 20  74 68 65 20 70 6f 69 6e  |.."Move the poin|
00006cf0  74 65 72 20 72 69 67 68  74 20 28 6f 72 20 70 72  |ter right (or pr|
00006d00  65 73 73 20 22 0a 5c 5c  bf 09 22 77 69 64 74 68  |ess ".\\.."width|
00006d10  20 6f 66 20 74 68 65 20  77 6f 72 6b 20 75 73 65  | of the work use|
00006d20  64 20 66 6f 72 20 74 65  78 74 20 6c 69 6e 65 73  |d for text lines|
00006d30  20 28 69 6e 20 70 6f 69  6e 74 73 29 2e 61 20 6f  | (in points).a o|
00006d40  66 20 61 6e 20 45 64 69  74 20 2c 20 69 6e 20 74  |f an Edit , in t|
00006d50  65 72 6d 73 20 6f 66 20  73 79 73 74 65 6d 20 66  |erms of system f|
00006d60  6f 6e 74 20 63 68 61 72  61 63 74 65 72 73 2e 22  |ont characters."|
00006d70  0a 5c 5c c0 09 22 62 61  63 6b 67 72 6f 75 6e 64  |.\\.."background|
00006d80  22 0a 5c 5c c1 09 22 67  72 69 64 22 0a 5c 5c c2  |".\\.."grid".\\.|
00006d90  09 22 20 74 68 69 73 20  73 70 72 69 74 65 22 0a  |." this sprite".|
00006da0  5c 5c c3 09 22 54 6f 20  70 61 69 6e 74 20 65 61  |\\.."To paint ea|
00006db0  63 68 20 63 69 72 63 6c  65 2c 20 63 6c 69 63 6b  |ch circle, click|
00006dc0  20 20 61 74 20 69 74 73  20 63 65 6e 74 72 65 20  |  at its centre |
00006dd0  61 6e 64 20 74 68 65 6e  20 61 74 20 61 20 70 6f  |and then at a po|
00006de0  69 6e 74 20 6f 6e 20 74  68 65 20 65 64 67 65 2e  |int on the edge.|
00006df0  22 0a 5c 5c c4 09 22 43  6c 69 63 6b 20 20 6f 72  |".\\.."Click  or|
00006e00  20 74 79 70 65 20 22 0a  5c 5c c5 09 22 61 6e 73  | type ".\\.."ans|
00006e10  77 65 72 20 74 68 65 20  71 75 65 73 74 69 6f 6e  |wer the question|
00006e20  2e 22 0a 5c 5c c6 09 22  62 61 63 6b 20 75 70 20  |.".\\.."back up |
00006e30  74 68 65 20 64 69 73 63  20 69 6e 20 64 72 69 76  |the disc in driv|
00006e40  65 20 22 0a 5c 5c c7 09  22 54 6f 20 70 61 69 6e  |e ".\\.."To pain|
00006e50  74 20 65 61 63 68 20 72  65 63 74 61 6e 67 6c 65  |t each rectangle|
00006e60  2c 20 63 6c 69 63 6b 20  20 61 74 20 74 77 6f 20  |, click  at two |
00006e70  6f 70 70 6f 73 69 74 65  20 63 6f 72 6e 65 72 73  |opposite corners|
00006e80  20 6f 66 20 74 68 65 20  72 65 63 74 61 6e 67 6c  | of the rectangl|
00006e90  65 20 77 69 74 68 69 6e  20 74 68 65 20 73 70 72  |e within the spr|
00006ea0  69 74 65 20 2e 22 0a 5c  5c c9 09 22 73 65 6c 65  |ite .".\\.."sele|
00006eb0  63 74 65 64 20 22 0a 5c  5c ca 09 22 64 65 74 65  |cted ".\\.."dete|
00006ec0  72 6d 69 6e 65 20 74 68  65 20 66 72 65 65 20 73  |rmine the free s|
00006ed0  70 61 63 65 20 6f 22 0a  5c 5c cb 09 22 54 68 69  |pace o".\\.."Thi|
00006ee0  73 20 69 73 22 0a 5c 5c  cc 09 22 73 65 61 72 63  |s is".\\.."searc|
00006ef0  68 22 0a 5c 5c cd 09 22  77 69 6e 64 6f 77 22 0a  |h".\\.."window".|
00006f00  5c 5c ce 09 22 54 6f 20  70 61 69 6e 74 20 65 61  |\\.."To paint ea|
00006f10  63 68 20 70 61 72 61 6c  6c 65 6c 6f 67 72 61 6d  |ch parallelogram|
00006f20  2c 20 63 6c 69 63 6b 20  20 61 74 20 74 68 72 65  |, click  at thre|
00006f30  65 20 64 69 66 66 65 72  65 6e 74 20 63 6f 72 6e  |e different corn|
00006f40  65 72 73 2e 22 0a 5c 5c  cf 09 22 20 4d 61 6e 61  |ers.".\\.." Mana|
00006f50  67 65 72 22 0a 5c 5c d0  09 22 6d 61 6b 65 20 74  |ger".\\.."make t|
00006f60  68 65 20 6d 61 63 68 69  6e 65 20 61 75 74 6f 2d  |he machine auto-|
00006f70  62 6f 6f 74 20 6f 6e 20  72 65 73 65 74 20 69 66  |boot on reset if|
00006f80  20 53 68 69 66 74 20 69  73 20 22 0a 5c 5c d1 09  | Shift is ".\\..|
00006f90  22 54 68 69 73 20 20 64  69 73 70 6c 61 79 73 22  |"This  displays"|
00006fa0  0a 5c 5c d2 09 22 73 68  6f 77 22 0a 5c 5c d3 09  |.\\.."show".\\..|
00006fb0  22 74 68 65 72 22 0a 5c  5c d4 09 22 44 72 61 67  |"ther".\\.."Drag|
00006fc0  20 61 20 6d 6f 64 65 20  64 65 73 63 72 69 70 74  | a mode descript|
00006fd0  69 6f 6e 20 66 69 6c 65  20 68 65 72 65 20 74 6f  |ion file here to|
00006fe0  20 63 68 61 6e 67 65 20  74 68 65 20 61 76 61 69  | change the avai|
00006ff0  6c 61 62 6c 65 20 6d 6f  64 65 73 2e 22 0a 5c 5c  |lable modes.".\\|
00007000  d5 09 22 69 6e 67 20 22  0a 5c 5c d6 09 22 69 6e  |.."ing ".\\.."in|
00007010  74 22 0a 5c 5c d7 09 22  20 6d 6f 64 65 2e 22 0a  |t".\\.." mode.".|
00007020  5c 5c d9 09 22 54 79 70  65 20 69 6e 20 74 68 65  |\\.."Type in the|
00007030  20 22 0a 5c 5c da 09 22  44 6f 75 62 6c 65 2d 63  | ".\\.."Double-c|
00007040  6c 69 63 6b 20 41 44 4a  55 53 54 20 74 6f 20 22  |lick ADJUST to "|
00007050  0a 5c 5c db 09 22 61 63  63 65 73 73 20 22 0a 5c  |.\\.."access ".\|
00007060  5c dc 09 22 6e 65 77 20  22 0a 5c 5c dd 09 22 70  |\.."new ".\\.."p|
00007070  61 74 74 65 72 6e 22 0a  5c 5c de 09 22 70 69 78  |attern".\\.."pix|
00007080  65 6c 73 22 0a 5c 5c df  09 22 72 65 70 6c 61 63  |els".\\.."replac|
00007090  22 0a 5c 5c e0 09 22 72  6f 6f 74 20 64 69 72 65  |".\\.."root dire|
000070a0  63 74 6f 72 79 22 0a 5c  5c e1 09 22 73 63 61 6c  |ctory".\\.."scal|
000070b0  65 20 66 61 63 74 6f 72  22 0a 5c 5c e2 09 22 74  |e factor".\\.."t|
000070c0  61 73 6b 22 0a 5c 5c e3  09 22 55 73 65 20 74 68  |ask".\\.."Use th|
000070d0  65 20 66 75 6c 6c 20 69  6e 66 6f 20 64 69 73 70  |e full info disp|
000070e0  6c 61 79 20 6f 70 74 69  6f 6e 20 74 6f 20 73 65  |lay option to se|
000070f0  65 20 63 75 72 72 65 6e  74 20 73 65 74 74 69 6e  |e current settin|
00007100  67 73 2e 22 0a 5c 5c e4  09 22 61 74 65 22 0a 5c  |gs.".\\.."ate".\|
00007110  5c e5 09 22 74 65 78 74  22 0a 5c 5c e6 09 22 44  |\.."text".\\.."D|
00007120  72 61 67 20 22 0a 5c 5c  e7 09 22 54 68 65 20 22  |rag ".\\.."The "|
00007130  0a 5c 5c e9 09 22 66 69  6c 65 20 62 65 69 6e 67  |.\\.."file being|
00007140  20 65 64 69 74 65 64 2e  22 0a 5c 5c ea 09 22 61  | edited.".\\.."a|
00007150  6c 6c 6f 77 20 74 68 65  20 67 65 6e 65 72 61 6c  |llow the general|
00007160  20 70 75 62 6c 69 63 20  74 6f 20 72 65 61 64 22  | public to read"|
00007170  0a 5c 5c eb 09 22 64 72  69 76 65 22 0a 5c 5c ec  |.\\.."drive".\\.|
00007180  09 22 6f 70 65 22 0a 5c  5c ed 09 22 72 65 73 6f  |."ope".\\.."reso|
00007190  6c 75 74 69 6f 6e 22 0a  5c 5c ee 09 22 63 65 6e  |lution".\\.."cen|
000071a0  74 69 6d 65 74 72 65 22  0a 5c 5c ef 09 22 65 6e  |timetre".\\.."en|
000071b0  74 65 72 22 0a 5c 5c f0  09 22 20 66 69 6c 65 22  |ter".\\.." file"|
000071c0  0a 5c 5c f1 09 22 20 74  6f 20 62 65 20 22 0a 5c  |.\\.." to be ".\|
000071d0  5c f2 09 22 20 69 63 6f  6e 22 0a 5c 5c f3 09 22  |\.." icon".\\.."|
000071e0  29 20 74 6f 20 22 0a 5c  5c f4 09 22 20 61 6e 64  |) to ".\\.." and|
000071f0  20 63 6c 69 63 6b 20 20  6f 6e 20 4f 4b 22 0a 5c  | click  on OK".\|
00007200  5c f5 09 22 73 65 74 20  74 68 65 20 22 0a 5c 5c  |\.."set the ".\\|
00007210  f6 09 22 20 6f 72 20 6d  6f 72 65 20 6f 63 63 75  |.." or more occu|
00007220  72 72 65 6e 63 65 73 20  6f 66 20 74 68 65 20 6e  |rrences of the n|
00007230  65 78 74 20 70 61 74 74  65 72 6e 20 65 6c 65 6d  |ext pattern elem|
00007240  65 6e 74 22 0a 5c 5c f7  09 22 20 69 6e 74 6f 22  |ent".\\.." into"|
00007250  0a 5c 5c f9 09 22 73 69  7a 65 22 0a 5c 5c fa 09  |.\\.."size".\\..|
00007260  22 74 69 6d 65 20 73 74  61 6d 70 22 0a 5c 5c fb  |"time stamp".\\.|
00007270  09 22 20 62 65 74 77 65  65 6e 20 74 68 65 20 74  |." between the t|
00007280  77 6f 20 6d 61 74 63 68  69 6e 67 20 70 61 74 68  |wo matching path|
00007290  73 20 69 6e 20 74 68 65  20 73 65 6c 65 63 74 65  |s in the selecte|
000072a0  64 20 67 72 6f 75 70 2e  22 0a 5c 5c fc 09 22 20  |d group.".\\.." |
000072b0  63 6f 6e 74 61 69 6e 22  0a 5c 5c fd 09 22 20 6f  |contain".\\.." o|
000072c0  6e 20 74 68 65 20 22 0a  5c 5c fe 09 22 20 6f 66  |n the ".\\.." of|
000072d0  20 6f 62 6a 65 63 74 73  2e 22 0a 5c 5c ff 09 22  | objects.".\\.."|
000072e0  20 74 68 61 74 22 0a 00  44 49 52 24 20 08 00 00  | that"..DIR$ ...|
000072f0  20 08 00 00 08 7b 00 00  47 fd ff ff 85 ed 48 cd  | ....{..G.....H.|
00007300  88 00 00 00 03 00 00 00  00 00 00 00 75 70 64 30  |............upd0|
00007310  2d 31 00 00 90 7b 00 00  47 fd ff ff 92 ee 63 a2  |-1...{..G.....c.|
00007320  a6 00 00 00 13 00 00 00  00 00 00 00 55 70 64 32  |............Upd2|
00007330  00 00 00 00 38 7c 00 00  47 fd ff ff ae fc 63 a2  |....8|..G.....c.|
00007340  55 00 00 00 13 00 00 00  00 00 00 00 55 70 64 33  |U...........Upd3|
00007350  00 00 00 00 90 7c 00 00  47 fd ff ff c4 6b 64 a2  |.....|..G....kd.|
00007360  6a 01 00 00 13 00 00 00  00 00 00 00 55 70 64 31  |j...........Upd1|
00007370  31 00 00 00 fc 7d 00 00  46 fd ff ff 31 dc 91 3f  |1....}..F...1..?|
00007380  2d 00 00 00 13 00 00 00  00 00 00 00 55 70 64 31  |-...........Upd1|
00007390  30 00 00 00 2c 7e 00 00  47 fd ff ff e7 b9 5a a2  |0...,~..G.....Z.|
000073a0  14 01 00 00 13 00 00 00  00 00 00 00 43 6f 6d 30  |............Com0|
000073b0  00 00 00 00 40 7f 00 00  47 fd ff ff 37 d9 5a a2  |....@...G...7.Z.|
000073c0  66 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 31  |f...........Com1|
000073d0  30 00 00 00 a8 7f 00 00  47 fd ff ff 27 e8 5c a2  |0.......G...'.\.|
000073e0  3b 02 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |;...........Com2|
000073f0  30 00 00 00 e4 81 00 00  47 fd ff ff 80 07 a1 cd  |0.......G.......|
00007400  6e 00 00 00 13 00 00 00  00 00 00 00 63 6f 6d 33  |n...........com3|
00007410  30 00 00 00 54 82 00 00  47 fd ff ff 63 0b a1 cd  |0...T...G...c...|
00007420  a4 00 00 00 13 00 00 00  00 00 00 00 63 6f 6d 34  |............com4|
00007430  30 00 00 00 f8 82 00 00  47 fd ff ff ed f2 5c a2  |0.......G.....\.|
00007440  49 01 00 00 13 00 00 00  00 00 00 00 43 6f 6d 31  |I...........Com1|
00007450  30 30 00 00 44 84 00 00  47 fd ff ff 2e cb 5b a2  |00..D...G.....[.|
00007460  cb 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 31  |............Com1|
00007470  31 30 00 00 10 85 00 00  46 fd ff ff 9d c3 93 3f  |10......F......?|
00007480  e6 01 00 00 13 00 00 00  00 00 00 00 43 6f 6d 31  |............Com1|
00007490  32 30 00 00 f8 86 00 00  46 fd ff ff e1 d0 93 3f  |20......F......?|
000074a0  b3 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 31  |............Com1|
000074b0  33 30 00 00 ac 87 00 00  46 fd ff ff 86 eb 93 3f  |30......F......?|
000074c0  1e 01 00 00 13 00 00 00  00 00 00 00 43 6f 6d 31  |............Com1|
000074d0  34 30 00 00 cc 88 00 00  47 fd ff ff 03 13 5c a2  |40......G.....\.|
000074e0  0c 01 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |............Com2|
000074f0  30 30 00 00 d8 89 00 00  47 fd ff ff 44 08 5d a2  |00......G...D.].|
00007500  2d 05 00 00 13 00 00 00  00 00 00 00 63 6f 6d 32  |-...........com2|
00007510  31 30 00 00 08 8f 00 00  47 fd ff ff a7 e0 5c a2  |10......G.....\.|
00007520  99 01 00 00 13 00 00 00  00 00 00 00 63 6f 6d 32  |............com2|
00007530  32 30 00 00 a4 90 00 00  46 fd ff ff 4c 55 95 3f  |20......F...LU.?|
00007540  a5 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |............Com2|
00007550  33 30 00 00 4c 91 00 00  46 fd ff ff 4b 58 95 3f  |30..L...F...KX.?|
00007560  a7 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |............Com2|
00007570  34 30 00 00 f4 91 00 00  46 fd ff ff 5d 5c 95 3f  |40......F...]\.?|
00007580  cf 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |............Com2|
00007590  35 30 00 00 c4 92 00 00  47 fd ff ff 34 62 95 cd  |50......G...4b..|
000075a0  89 01 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |............Com2|
000075b0  36 30 00 00 50 94 00 00  47 fd ff ff bd 26 5d a2  |60..P...G....&].|
000075c0  69 01 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |i...........Com2|
000075d0  37 30 00 00 bc 95 00 00  47 fd ff ff 52 2d 5d a2  |70......G...R-].|
000075e0  81 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |............Com2|
000075f0  38 30 00 00 40 96 00 00  47 fd ff ff 4b ed 48 cd  |80..@...G...K.H.|
00007600  f6 00 00 00 03 00 00 00  00 00 00 00 43 6f 6d 33  |............Com3|
00007610  30 30 00 00 38 97 00 00  47 fd ff ff 3d ed 48 cd  |00..8...G...=.H.|
00007620  f9 00 00 00 03 00 00 00  00 00 00 00 43 6f 6d 33  |............Com3|
00007630  31 30 00 00 34 98 00 00  47 fd ff ff ae ed 48 cd  |10..4...G.....H.|
00007640  cf 01 00 00 03 00 00 00  00 00 00 00 43 6f 6d 34  |............Com4|
00007650  30 30 00 00 04 9a 00 00  46 fd ff ff b6 92 95 3f  |00......F......?|
00007660  2e 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 34  |............Com4|
00007670  31 30 00 00 34 9a 00 00  47 fd ff ff bf ed 48 cd  |10..4...G.....H.|
00007680  73 00 00 00 03 00 00 00  00 00 00 00 43 6f 6d 34  |s...........Com4|
00007690  32 30 00 00 a8 9a 00 00  47 fd ff ff c7 24 a1 cd  |20......G....$..|
000076a0  ae 00 00 00 03 00 00 00  00 00 00 00 43 6f 6d 34  |............Com4|
000076b0  33 30 00 00 58 9b 00 00  47 fd ff ff cf 26 a1 cd  |30..X...G....&..|
000076c0  0e 01 00 00 03 00 00 00  00 00 00 00 63 6f 6d 34  |............com4|
000076d0  34 30 00 00 68 9c 00 00  47 fd ff ff df 58 5f a2  |40..h...G....X_.|
000076e0  6e 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 34  |n...........Com4|
000076f0  35 30 00 00 d8 9c 00 00  47 fd ff ff 9b 5e 5f a2  |50......G....^_.|
00007700  6c 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 34  |l...........Com4|
00007710  36 30 00 00 44 9d 00 00  46 fd ff ff 6f 7b 96 3f  |60..D...F...o{.?|
00007720  43 03 00 00 13 00 00 00  00 00 00 00 43 6f 6d 38  |C...........Com8|
00007730  30 30 00 00 88 a0 00 00  47 fd ff ff 6c 0a ce 93  |00......G...l...|
00007740  0d 01 00 00 13 00 00 00  00 00 00 00 63 6f 6d 39  |............com9|
00007750  30 30 00 00 98 a1 00 00  47 fd ff ff 2a ee 48 cd  |00......G...*.H.|
00007760  67 01 00 00 03 00 00 00  00 00 00 00 52 65 70 30  |g...........Rep0|
00007770  00 00 00 00 00 a3 00 00  46 fd ff ff 18 53 97 3f  |........F....S.?|
00007780  af 00 00 00 13 00 00 00  00 00 00 00 52 65 70 31  |............Rep1|
00007790  30 00 00 00 b0 a3 00 00  46 fd ff ff c5 86 97 3f  |0.......F......?|
000077a0  34 00 00 00 13 00 00 00  00 00 00 00 52 65 70 32  |4...........Rep2|
000077b0  30 00 00 00 e4 a3 00 00  46 fd ff ff 8a a8 97 3f  |0.......F......?|
000077c0  36 00 00 00 13 00 00 00  00 00 00 00 52 65 70 33  |6...........Rep3|
000077d0  30 00 00 00 1c a4 00 00  47 fd ff ff 19 ee 48 cd  |0.......G.....H.|
000077e0  a0 03 00 00 03 00 00 00  00 00 00 00 52 65 70 31  |............Rep1|
000077f0  30 30 00 00 bc a7 00 00  47 fd ff ff 65 94 61 a2  |00......G...e.a.|
00007800  da 00 00 00 13 00 00 00  00 00 00 00 52 65 70 31  |............Rep1|
00007810  31 30 00 00 98 a8 00 00  47 fd ff ff 11 bf 61 a2  |10......G.....a.|
00007820  62 01 00 00 13 00 00 00  00 00 00 00 52 65 70 32  |b...........Rep2|
00007830  30 30 00 00 fc a9 00 00  47 fd ff ff 84 f9 61 a2  |00......G.....a.|
00007840  5b 01 00 00 13 00 00 00  00 00 00 00 52 65 70 32  |[...........Rep2|
00007850  31 30 00 00 58 ab 00 00  47 fd ff ff 42 08 62 a2  |10..X...G...B.b.|
00007860  36 01 00 00 13 00 00 00  00 00 00 00 52 65 70 32  |6...........Rep2|
00007870  32 30 00 00 90 ac 00 00  47 fd ff ff 41 59 a1 cd  |20......G...AY..|
00007880  ce 00 00 00 13 00 00 00  00 00 00 00 52 65 70 34  |............Rep4|
00007890  30 30 00 00 60 ad 00 00  47 fd ff ff 39 33 a1 cd  |00..`...G...93..|
000078a0  90 00 00 00 03 00 00 00  00 00 00 00 72 65 70 34  |............rep4|
000078b0  34 30 00 00 f0 ad 00 00  47 fd ff ff 6e ed 48 cd  |40......G...n.H.|
000078c0  4a 00 00 00 03 00 00 00  00 00 00 00 52 65 70 34  |J...........Rep4|
000078d0  35 30 00 00 3c ae 00 00  47 fd ff ff e6 ce 62 a2  |50..<...G.....b.|
000078e0  47 00 00 00 13 00 00 00  00 00 00 00 52 65 70 34  |G...........Rep4|
000078f0  36 30 00 00 84 ae 00 00  47 fd ff ff c4 0c ce 93  |60......G.......|
00007900  22 01 00 00 13 00 00 00  00 00 00 00 72 65 70 39  |"...........rep9|
00007910  30 30 00 00 a8 af 00 00  47 fd ff ff 7d 03 5c a2  |00......G...}.\.|
00007920  4e 00 00 00 13 00 00 00  00 00 00 00 43 6f 6d 31  |N...........Com1|
00007930  35 30 00 00 f8 af 00 00  47 fd ff ff f7 7f 5d a2  |50......G.....].|
00007940  5f 03 00 00 13 00 00 00  00 00 00 00 43 6f 6d 32  |_...........Com2|
00007950  39 30 00 00 58 b3 00 00  47 fd ff ff 2b ed 48 cd  |90..X...G...+.H.|
00007960  58 01 00 00 03 00 00 00  00 00 00 00 43 6f 6d 33  |X...........Com3|
00007970  32 30 00 00 b0 b4 00 00  47 fd ff ff 11 41 a1 cd  |20......G....A..|
00007980  a8 00 00 00 33 00 00 00  00 00 00 00 43 6f 6d 35  |....3.......Com5|
00007990  30 30 00 00 58 b5 00 00  47 fd ff ff ed ed 48 cd  |00..X...G.....H.|
000079a0  a2 00 00 00 03 00 00 00  00 00 00 00 63 6f 6d 31  |............com1|
000079b0  30 30 30 00 fc b5 00 00  47 fd ff ff b8 ee 48 cd  |000.....G.....H.|
000079c0  45 01 00 00 03 00 00 00  00 00 00 00 52 65 70 32  |E...........Rep2|
000079d0  39 30 00 00 44 b7 00 00  47 fd ff ff 8c 62 c0 cd  |90..D...G....b..|
000079e0  83 00 00 00 13 00 00 00  00 00 00 00 72 65 70 35  |............rep5|
000079f0  30 30 00 00 c8 b7 00 00  47 fd ff ff 51 5b a1 cd  |00......G...Q[..|
00007a00  e9 00 00 00 03 00 00 00  00 00 00 00 75 70 64 34  |............upd4|
00007a10  2d 36 00 00 b4 b8 00 00  47 fd ff ff ff ee 48 cd  |-6......G.....H.|
00007a20  86 00 00 00 03 00 00 00  00 00 00 00 75 70 64 31  |............upd1|
00007a30  32 00 00 00 3c b9 00 00  47 fd ff ff 07 b6 64 a2  |2...<...G.....d.|
00007a40  fe 00 00 00 13 00 00 00  00 00 00 00 55 70 64 31  |............Upd1|
00007a50  30 30 00 00 3c ba 00 00  47 fd ff ff 7d fe a0 cd  |00..<...G...}...|
00007a60  57 01 00 00 13 00 00 00  00 00 00 00 63 6f 6d 33  |W...........com3|
00007a70  30 69 74 65 6d 73 00 00  94 bb 00 00 47 fd ff ff  |0items......G...|
00007a80  b7 19 a1 cd 34 02 00 00  13 00 00 00 00 00 00 00  |....4...........|
00007a90  63 6f 6d 34 33 30 69 74  65 6d 73 00 c8 bd 00 00  |com430items.....|
00007aa0  47 fd ff ff 66 1c a1 cd  5e 00 00 00 13 00 00 00  |G...f...^.......|
00007ab0  00 00 00 00 63 6f 6d 34  33 30 66 6c 61 67 73 00  |....com430flags.|
00007ac0  28 be 00 00 47 fd ff ff  a9 3c a1 cd 5a 00 00 00  |(...G....<..Z...|
00007ad0  13 00 00 00 00 00 00 00  63 6f 6d 35 30 30 69 74  |........com500it|
00007ae0  65 6d 73 00 84 be 00 00  47 fd ff ff 34 4e a1 cd  |ems.....G...4N..|
00007af0  20 01 00 00 13 00 00 00  00 00 00 00 52 65 70 34  | ...........Rep4|
00007b00  30 30 66 6c 61 67 73 00  44 41 54 41 88 00 00 00  |00flags.DATA....|
00007b10  4e 65 77 73 42 61 73 65  20 55 70 64 61 74 65 20  |NewsBase Update |
00007b20  74 79 70 65 20 30 20 61  6e 64 20 31 0a 2b 32 34  |type 0 and 1.+24|
00007b30  09 6e 75 6d 62 65 72 20  6f 66 20 61 72 74 69 63  |.number of artic|
00007b40  6c 65 73 20 69 6e 20 67  72 6f 75 70 0a 2b 32 38  |les in group.+28|
00007b50  09 6c 61 73 74 20 61 72  74 69 63 6c 65 20 69 6e  |.last article in|
00007b60  20 67 72 6f 75 70 0a 2b  33 32 09 4e 61 6d 65 20  | group.+32.Name |
00007b70  6f 66 20 6e 65 77 73 67  72 6f 75 70 20 63 72 65  |of newsgroup cre|
00007b80  61 74 65 64 20 6f 72 20  64 65 6c 65 74 65 64 0a  |ated or deleted.|
00007b90  44 41 54 41 a6 00 00 00  4e 65 77 73 42 61 73 65  |DATA....NewsBase|
00007ba0  20 55 70 64 61 74 65 20  74 79 70 65 20 32 0a 2b  | Update type 2.+|
00007bb0  32 34 09 41 72 74 69 63  6c 65 20 6e 75 6d 62 65  |24.Article numbe|
00007bc0  72 0a 2b 32 38 09 41 72  74 69 63 6c 65 20 64 61  |r.+28.Article da|
00007bd0  74 65 0a 2b 33 32 09 4e  61 6d 65 20 6f 66 20 6e  |te.+32.Name of n|
00007be0  65 77 73 67 72 6f 75 70  0a 2b 33 32 2b 6e 09 46  |ewsgroup.+32+n.F|
00007bf0  72 6f 6d 20 66 69 65 6c  64 0a 2b 33 32 2b 6d 09  |rom field.+32+m.|
00007c00  53 75 62 6a 65 63 74 20  66 69 65 6c 64 0a 2b 33  |Subject field.+3|
00007c10  32 2b 6f 09 4d 65 73 73  61 67 65 2d 49 44 20 66  |2+o.Message-ID f|
00007c20  69 65 6c 64 0a 2b 33 32  2b 70 09 44 61 74 65 20  |ield.+32+p.Date |
00007c30  66 69 65 6c 64 0a 00 00  44 41 54 41 55 00 00 00  |field...DATAU...|
00007c40  4e 65 77 73 42 61 73 65  20 55 70 64 61 74 65 20  |NewsBase Update |
00007c50  74 79 70 65 20 33 0a 2b  32 34 09 41 72 74 69 63  |type 3.+24.Artic|
00007c60  6c 65 20 6e 75 6d 62 65  72 0a 2b 32 38 09 72 65  |le number.+28.re|
00007c70  73 65 72 76 65 64 0a 2b  33 32 09 4e 61 6d 65 20  |served.+32.Name |
00007c80  6f 66 20 6e 65 77 73 67  72 6f 75 70 0a 00 00 00  |of newsgroup....|
00007c90  44 41 54 41 6a 01 00 00  4e 65 77 73 42 61 73 65  |DATAj...NewsBase|
00007ca0  20 55 70 64 61 74 65 20  74 79 70 65 20 31 31 0a  | Update type 11.|
00007cb0  2b 32 34 09 3c 55 70 64  61 74 65 20 74 79 70 65  |+24.<Update type|
00007cc0  3d 3e 2e 74 79 70 65 73  3e 0a 2b 32 38 09 72 65  |=>.types>.+28.re|
00007cd0  73 65 72 76 65 64 0a 2b  33 32 09 54 72 61 6e 73  |served.+32.Trans|
00007ce0  70 6f 72 74 20 6e 61 6d  65 2c 20 77 68 69 63 68  |port name, which|
00007cf0  20 75 70 64 61 74 65 20  61 70 70 6c 69 65 73 20  | update applies |
00007d00  74 6f 0a 0a 54 68 69 73  20 69 73 20 62 72 6f 61  |to..This is broa|
00007d10  64 63 61 73 74 20 62 79  20 4e 65 77 73 62 61 73  |dcast by Newsbas|
00007d20  65 20 77 68 65 6e 20 61  20 6e 65 77 20 6f 75 74  |e when a new out|
00007d30  67 6f 69 6e 67 20 6d 61  69 6c 20 6f 72 20 6e 65  |going mail or ne|
00007d40  77 73 20 66 69 6c 65 20  69 73 20 71 75 65 75 65  |ws file is queue|
00007d50  64 2e 20 54 68 69 73 20  69 73 20 74 6f 20 70 65  |d. This is to pe|
00007d60  72 6d 69 74 20 65 78 74  65 72 6e 61 6c 20 71 75  |rmit external qu|
00007d70  65 75 65 20 63 6f 6e 74  72 6f 6c 20 61 70 70 6c  |eue control appl|
00007d80  69 63 61 74 69 6f 6e 73  20 74 6f 20 72 65 2d 65  |ications to re-e|
00007d90  78 61 6d 69 6e 65 20 74  68 65 20 71 75 65 75 65  |xamine the queue|
00007da0  20 61 6e 64 20 75 70 64  61 74 65 20 74 68 65 69  | and update thei|
00007db0  72 20 64 69 73 70 6c 61  79 73 2e 0a 23 73 75 62  |r displays..#sub|
00007dc0  70 61 67 65 20 74 79 70  65 73 0a 44 65 62 61 74  |page types.Debat|
00007dd0  63 68 20 74 79 70 65 73  0a 54 79 70 65 09 4d 65  |ch types.Type.Me|
00007de0  61 6e 69 6e 67 0a 23 4c  69 6e 65 0a 30 09 6d 61  |aning.#Line.0.ma|
00007df0  69 6c 0a 31 09 6e 65 77  73 0a 00 00 44 41 54 41  |il.1.news...DATA|
00007e00  2d 00 00 00 4e 65 77 73  42 61 73 65 20 55 70 64  |-...NewsBase Upd|
00007e10  61 74 65 20 74 79 70 65  20 31 30 0a 6e 6f 20 65  |ate type 10.no e|
00007e20  78 74 72 61 20 64 61 74  61 00 00 00 44 41 54 41  |xtra data...DATA|
00007e30  14 01 00 00 4e 65 77 73  42 61 73 65 5f 53 74 61  |....NewsBase_Sta|
00007e40  72 74 55 70 20 28 30 29  0a 2b 32 34 09 6d 69 6e  |rtUp (0).+24.min|
00007e50  69 6d 75 6d 20 76 65 72  73 69 6f 6e 20 6f 66 20  |imum version of |
00007e60  4e 65 77 73 42 61 73 65  20 73 75 70 70 6f 72 74  |NewsBase support|
00007e70  65 64 20 2a 20 31 30 30  0a 2b 32 38 09 6d 69 6e  |ed * 100.+28.min|
00007e80  69 6d 75 6d 20 72 65 76  69 73 69 6f 6e 20 6f 66  |imum revision of|
00007e90  20 4e 65 77 73 42 61 73  65 20 73 75 70 70 6f 72  | NewsBase suppor|
00007ea0  74 65 64 0a 0a 42 72 6f  61 64 63 61 73 74 20 62  |ted..Broadcast b|
00007eb0  79 20 61 20 63 6c 69 65  6e 74 20 74 6f 20 69 6e  |y a client to in|
00007ec0  64 69 63 61 74 65 20 69  74 20 72 65 71 75 69 72  |dicate it requir|
00007ed0  65 73 20 73 75 70 70 6f  72 74 20 66 72 6f 6d 20  |es support from |
00007ee0  6e 65 77 73 62 61 73 65  2e 20 49 66 20 6e 6f 20  |newsbase. If no |
00007ef0  72 65 73 70 6f 6e 73 65  20 72 65 63 65 69 76 65  |response receive|
00007f00  64 2c 20 74 68 65 20 63  6c 69 65 6e 74 20 6d 61  |d, the client ma|
00007f10  79 20 65 69 74 68 65 72  20 63 6f 6d 70 6c 61 69  |y either complai|
00007f20  6e 2c 20 6f 72 20 61 74  74 65 6d 70 74 20 74 6f  |n, or attempt to|
00007f30  20 73 74 61 72 74 20 6e  65 77 73 62 61 73 65 2e  | start newsbase.|
00007f40  44 41 54 41 66 00 00 00  4e 65 77 73 42 61 73 65  |DATAf...NewsBase|
00007f50  5f 53 68 75 74 44 6f 77  6e 20 28 31 30 29 0a 6e  |_ShutDown (10).n|
00007f60  6f 20 65 78 74 72 61 20  64 61 74 61 0a 0a 49 6e  |o extra data..In|
00007f70  64 69 63 61 74 65 73 20  74 68 61 74 20 61 20 63  |dicates that a c|
00007f80  6c 69 65 6e 74 20 68 61  73 20 66 69 6e 69 73 68  |lient has finish|
00007f90  65 64 20 61 20 6e 65 77  73 62 61 73 65 20 73 65  |ed a newsbase se|
00007fa0  73 73 69 6f 6e 2e 00 00  44 41 54 41 3b 02 00 00  |ssion...DATA;...|
00007fb0  4e 65 77 73 42 61 73 65  5f 53 65 74 55 73 65 72  |NewsBase_SetUser|
00007fc0  20 28 32 30 29 0a 2b 32  34 09 3c 45 6e 63 72 79  | (20).+24.<Encry|
00007fd0  70 74 69 6f 6e 20 74 79  70 65 3d 3e 2e 65 6e 63  |ption type=>.enc|
00007fe0  72 79 70 74 69 6f 6e 3e  0a 2b 33 32 09 55 73 65  |ryption>.+32.Use|
00007ff0  72 6e 61 6d 65 20 28 63  6f 6e 74 72 6f 6c 2d 74  |rname (control-t|
00008000  65 72 6d 69 6e 61 74 65  64 29 0a 2b 33 32 2b 6e  |erminated).+32+n|
00008010  09 50 61 73 73 77 6f 72  64 20 28 6f 72 20 6e 75  |.Password (or nu|
00008020  6c 6c 20 73 74 72 69 6e  67 29 0a 0a 53 65 74 73  |ll string)..Sets|
00008030  20 63 75 72 72 65 6e 74  20 75 73 65 72 6e 61 6d  | current usernam|
00008040  65 20 66 6f 72 20 74 68  65 20 6e 65 77 73 62 61  |e for the newsba|
00008050  73 65 20 73 65 73 73 69  6f 6e 2e 0a 0a 50 61 73  |se session...Pas|
00008060  73 77 6f 72 64 20 66 69  65 6c 64 20 69 73 20 63  |sword field is c|
00008070  75 72 72 65 6e 74 6c 79  20 69 67 6e 6f 72 65 64  |urrently ignored|
00008080  20 62 75 74 20 77 69 6c  6c 20 62 65 20 75 73 65  | but will be use|
00008090  64 20 66 6f 72 20 6e 65  74 77 6f 72 6b 20 76 65  |d for network ve|
000080a0  72 73 69 6f 6e 73 20 6f  66 20 6e 65 77 73 62 61  |rsions of newsba|
000080b0  73 65 2e 20 45 6e 63 72  79 70 74 69 6f 6e 20 74  |se. Encryption t|
000080c0  79 70 65 20 69 6e 64 69  63 61 74 65 73 20 77 68  |ype indicates wh|
000080d0  65 74 68 65 72 20 74 68  65 20 70 61 73 73 77 6f  |ether the passwo|
000080e0  72 64 20 66 69 65 6c 64  20 69 73 20 65 6e 63 72  |rd field is encr|
000080f0  79 70 74 65 64 2e 20 49  6e 69 74 69 61 6c 6c 79  |ypted. Initially|
00008100  20 6f 6e 6c 79 20 74 79  70 65 20 30 20 28 6e 6f  | only type 0 (no|
00008110  6e 65 29 20 77 69 6c 6c  20 62 65 20 73 75 70 70  |ne) will be supp|
00008120  6f 72 74 65 64 2c 20 62  75 74 20 65 6e 63 72 79  |orted, but encry|
00008130  70 74 69 6f 6e 20 77 69  6c 6c 20 62 65 20 61 64  |ption will be ad|
00008140  64 65 64 20 74 6f 20 61  76 6f 69 64 20 70 61 73  |ded to avoid pas|
00008150  73 69 6e 67 20 70 6c 61  69 6e 74 65 78 74 20 70  |sing plaintext p|
00008160  61 73 73 77 6f 72 64 73  20 6f 76 65 72 20 61 20  |asswords over a |
00008170  6e 65 74 77 6f 72 6b 2e  0a 23 53 75 62 70 61 67  |network..#Subpag|
00008180  65 20 65 6e 63 72 79 70  74 69 6f 6e 0a 53 65 74  |e encryption.Set|
00008190  55 73 65 72 20 65 6e 63  72 79 70 74 69 6f 6e 20  |User encryption |
000081a0  74 79 70 65 73 0a 54 79  70 65 09 4d 65 61 6e 69  |types.Type.Meani|
000081b0  6e 67 0a 23 4c 69 6e 65  0a 30 09 55 6e 2d 65 6e  |ng.#Line.0.Un-en|
000081c0  63 72 79 70 74 65 64 20  73 74 72 69 6e 67 0a 31  |crypted string.1|
000081d0  09 4d 44 35 20 73 74 72  69 6e 67 20 64 69 67 65  |.MD5 string dige|
000081e0  73 74 0a 00 44 41 54 41  6e 00 00 00 4e 65 77 73  |st..DATAn...News|
000081f0  42 61 73 65 5f 53 69 74  65 49 6e 66 6f 20 28 33  |Base_SiteInfo (3|
00008200  30 29 0a 2b 32 34 09 3c  69 74 65 6d 20 6e 75 6d  |0).+24.<item num|
00008210  62 65 72 3d 3e 4d 73 67  5f 4e 42 5f 63 6f 6d 33  |ber=>Msg_NB_com3|
00008220  30 69 74 65 6d 73 3e 0a  0a 52 65 71 75 65 73 74  |0items>..Request|
00008230  73 20 73 69 74 65 20 69  6e 66 6f 72 6d 61 74 69  |s site informati|
00008240  6f 6e 20 66 72 6f 6d 20  4e 65 77 73 62 61 73 65  |on from Newsbase|
00008250  2e 0a 00 00 44 41 54 41  a4 00 00 00 4e 65 77 73  |....DATA....News|
00008260  42 61 73 65 5f 53 65 74  53 69 74 65 49 6e 66 6f  |Base_SetSiteInfo|
00008270  20 28 34 30 29 0a 2b 32  34 09 3c 69 74 65 6d 20  | (40).+24.<item |
00008280  6e 75 6d 62 65 72 3d 3e  4d 73 67 5f 4e 42 5f 43  |number=>Msg_NB_C|
00008290  6f 6d 33 30 69 74 65 6d  73 3e 0a 2b 33 32 09 6e  |om30items>.+32.n|
000082a0  65 77 20 76 61 6c 75 65  20 73 74 72 69 6e 67 0a  |ew value string.|
000082b0  0a 53 65 74 73 20 61 20  76 61 6c 75 65 20 69 6e  |.Sets a value in|
000082c0  20 74 68 65 20 4e 65 77  73 42 61 73 65 20 73 65  | the NewsBase se|
000082d0  74 74 69 6e 67 73 20 2d  20 7b 2a 7d 54 68 69 73  |ttings - {*}This|
000082e0  20 69 73 20 6e 6f 74 20  69 6d 70 6c 65 6d 65 6e  | is not implemen|
000082f0  74 65 64 2e 7b 2a 7d 0a  44 41 54 41 49 01 00 00  |ted.{*}.DATAI...|
00008300  4e 65 77 73 42 61 73 65  5f 4c 69 73 74 47 72 6f  |NewsBase_ListGro|
00008310  75 70 73 20 28 31 30 30  29 0a 2b 32 34 09 3c 6c  |ups (100).+24.<l|
00008320  69 73 74 20 74 79 70 65  3d 3e 2e 74 79 70 65 3e  |ist type=>.type>|
00008330  0a 2b 33 32 09 67 72 6f  75 70 20 6e 61 6d 65 20  |.+32.group name |
00008340  6f 72 20 70 61 74 74 65  72 6e 0a 0a 41 20 6c 69  |or pattern..A li|
00008350  73 74 20 6f 66 20 61 63  74 69 76 65 20 67 72 6f  |st of active gro|
00008360  75 70 73 20 6d 61 74 63  68 69 6e 67 20 74 68 65  |ups matching the|
00008370  20 67 69 76 65 6e 20 70  61 74 74 65 72 6e 20 69  | given pattern i|
00008380  73 20 72 65 74 75 72 6e  65 64 2e 20 4d 6f 73 74  |s returned. Most|
00008390  20 63 6f 6d 6d 6f 6e 20  75 73 65 20 77 69 6c 6c  | common use will|
000083a0  20 62 65 20 74 6f 20 72  65 74 75 72 6e 20 61 6c  | be to return al|
000083b0  6c 20 61 63 74 69 76 65  20 67 72 6f 75 70 73 20  |l active groups |
000083c0  28 70 61 74 74 65 72 6e  20 22 2a 22 29 2e 0a 23  |(pattern "*")..#|
000083d0  53 75 62 70 61 67 65 20  74 79 70 65 0a 4c 69 73  |Subpage type.Lis|
000083e0  74 47 72 6f 75 70 20 74  79 70 65 73 0a 54 79 70  |tGroup types.Typ|
000083f0  65 09 4c 69 73 74 20 74  6f 20 72 65 74 75 72 6e  |e.List to return|
00008400  0a 30 09 64 61 74 61 62  61 73 65 20 28 74 68 6f  |.0.database (tho|
00008410  73 65 20 69 6e 20 21 4e  65 77 73 44 69 72 29 0a  |se in !NewsDir).|
00008420  31 09 6e 65 77 73 66 65  65 64 20 28 77 69 6c 64  |1.newsfeed (wild|
00008430  63 61 72 64 20 69 73 20  69 67 6e 6f 72 65 64 29  |card is ignored)|
00008440  0a 00 00 00 44 41 54 41  cb 00 00 00 4e 65 77 73  |....DATA....News|
00008450  42 61 73 65 5f 4e 65 77  47 72 6f 75 70 73 20 28  |Base_NewGroups (|
00008460  31 31 30 29 0a 2b 32 34  09 64 61 74 65 0a 2b 32  |110).+24.date.+2|
00008470  38 09 74 69 6d 65 0a 0a  52 65 74 75 72 6e 73 20  |8.time..Returns |
00008480  61 6c 6c 20 6e 65 77 6c  79 2d 63 72 65 61 74 65  |all newly-create|
00008490  64 20 67 72 6f 75 70 73  20 73 69 6e 63 65 20 64  |d groups since d|
000084a0  61 74 65 2f 74 69 6d 65  2e 20 44 61 74 65 20 61  |ate/time. Date a|
000084b0  6e 64 20 74 69 6d 65 20  66 6f 6c 6c 6f 77 20 4e  |nd time follow N|
000084c0  4e 54 50 20 63 6f 6e 76  65 6e 74 69 6f 6e 20 6f  |NTP convention o|
000084d0  66 20 79 79 6d 6d 64 64  20 61 6e 64 20 68 68 6d  |f yymmdd and hhm|
000084e0  6d 73 73 2c 20 74 68 6f  75 67 68 20 69 6e 20 6e  |mss, though in n|
000084f0  75 6d 65 72 69 63 20 72  61 74 68 65 72 20 74 68  |umeric rather th|
00008500  61 6e 20 61 73 63 69 69  20 66 6f 72 6d 2e 0a 00  |an ascii form...|
00008510  44 41 54 41 e6 01 00 00  4e 65 77 73 42 61 73 65  |DATA....NewsBase|
00008520  5f 41 64 64 47 72 6f 75  70 20 28 31 32 30 29 0a  |_AddGroup (120).|
00008530  2b 33 32 09 67 72 6f 75  70 20 6e 61 6d 65 20 6f  |+32.group name o|
00008540  72 20 70 61 74 74 65 72  6e 0a 0a 41 64 64 73 20  |r pattern..Adds |
00008550  67 72 6f 75 70 28 73 29  20 74 6f 20 74 68 65 20  |group(s) to the |
00008560  61 63 74 69 76 65 20 6c  69 73 74 2e 20 54 68 69  |active list. Thi|
00008570  73 20 69 73 20 6e 6f 74  20 74 68 65 20 73 61 6d  |s is not the sam|
00008580  65 20 61 73 20 27 73 75  62 73 63 72 69 62 69 6e  |e as 'subscribin|
00008590  67 27 20 61 20 67 72 6f  75 70 20 66 6f 72 20 61  |g' a group for a|
000085a0  6e 20 69 6e 64 69 76 69  64 75 61 6c 20 75 73 65  |n individual use|
000085b0  72 20 28 77 68 69 63 68  20 73 68 6f 75 6c 64 20  |r (which should |
000085c0  62 65 20 68 61 6e 64 6c  65 64 20 73 6f 6c 65 6c  |be handled solel|
000085d0  79 20 62 79 20 74 68 65  20 63 6c 69 65 6e 74 20  |y by the client |
000085e0  70 72 6f 67 72 61 6d 29  20 2d 20 69 74 20 61 64  |program) - it ad|
000085f0  64 73 20 74 68 65 20 67  72 6f 75 70 28 73 29 20  |ds the group(s) |
00008600  74 6f 20 74 68 65 20 6e  65 77 73 20 66 65 65 64  |to the news feed|
00008610  2e 20 4d 61 79 20 6e 6f  74 20 62 65 20 73 75 70  |. May not be sup|
00008620  70 6f 72 74 65 64 20 6f  72 20 61 70 70 72 6f 70  |ported or approp|
00008630  72 69 61 74 65 20 66 6f  72 20 61 6c 6c 20 74 72  |riate for all tr|
00008640  61 6e 73 70 6f 72 74 20  74 79 70 65 73 2e 0a 0a  |ansport types...|
00008650  46 6f 72 20 6b 61 39 71  2c 20 69 66 20 6d 6f 72  |For ka9q, if mor|
00008660  65 20 74 68 61 6e 20 6f  6e 65 20 6e 65 77 73 66  |e than one newsf|
00008670  65 65 64 20 69 73 20 70  72 65 73 65 6e 74 20 28  |eed is present (|
00008680  6d 75 6c 74 69 70 6c 65  20 78 78 78 47 72 6f 75  |multiple xxxGrou|
00008690  70 20 66 69 6c 65 73 29  2c 20 74 68 65 20 67 72  |p files), the gr|
000086a0  6f 75 70 28 73 29 20 61  72 65 20 61 64 64 65 64  |oup(s) are added|
000086b0  20 74 6f 20 74 68 65 20  6c 61 72 67 65 73 74 20  | to the largest |
000086c0  66 69 6c 65 20 28 69 74  20 69 73 20 61 73 73 75  |file (it is assu|
000086d0  6d 65 64 20 74 68 61 74  20 74 68 69 73 20 69 73  |med that this is|
000086e0  20 74 68 65 20 70 72 69  6d 61 72 79 20 73 65 72  | the primary ser|
000086f0  76 65 72 29 2e 0a 00 00  44 41 54 41 b3 00 00 00  |ver)....DATA....|
00008700  4e 65 77 73 42 61 73 65  5f 52 65 6d 6f 76 65 47  |NewsBase_RemoveG|
00008710  72 6f 75 70 20 28 31 33  30 29 0a 2b 33 32 09 67  |roup (130).+32.g|
00008720  72 6f 75 70 20 6e 61 6d  65 20 6f 72 20 70 61 74  |roup name or pat|
00008730  74 65 72 6e 0a 0a 54 68  65 20 69 6e 76 65 72 73  |tern..The invers|
00008740  65 20 6f 66 20 74 68 65  20 41 64 64 47 72 6f 75  |e of the AddGrou|
00008750  70 20 63 6f 6d 6d 61 6e  64 2e 20 4d 61 79 20 6e  |p command. May n|
00008760  6f 74 20 62 65 20 73 75  70 70 6f 72 74 65 64 20  |ot be supported |
00008770  6f 72 20 61 70 70 72 6f  70 72 69 61 74 65 20 66  |or appropriate f|
00008780  6f 72 20 61 6c 6c 20 74  72 61 6e 73 70 6f 72 74  |or all transport|
00008790  20 74 79 70 65 73 2e 20  57 6f 72 6b 73 20 6f 6b  | types. Works ok|
000087a0  20 66 6f 72 20 6b 61 39  71 2e 0a 00 44 41 54 41  | for ka9q...DATA|
000087b0  1e 01 00 00 4e 65 77 73  42 61 73 65 5f 45 78 70  |....NewsBase_Exp|
000087c0  69 72 65 47 72 6f 75 70  20 28 31 34 30 29 0a 2b  |ireGroup (140).+|
000087d0  32 34 09 65 78 70 69 72  79 20 74 69 6d 65 20 69  |24.expiry time i|
000087e0  6e 20 64 61 79 73 20 28  2d 31 20 3d 20 64 65 66  |n days (-1 = def|
000087f0  61 75 6c 74 29 0a 2b 33  32 09 67 72 6f 75 70 20  |ault).+32.group |
00008800  6e 61 6d 65 20 6f 72 20  70 61 74 74 65 72 6e 0a  |name or pattern.|
00008810  0a 43 61 75 73 65 73 20  6e 65 77 73 62 61 73 65  |.Causes newsbase|
00008820  20 74 6f 20 70 65 72 66  6f 72 6d 20 61 6e 20 65  | to perform an e|
00008830  78 70 69 72 79 20 72 75  6e 20 6f 6e 20 74 68 65  |xpiry run on the|
00008840  20 73 70 65 63 69 66 69  65 64 20 67 72 6f 75 70  | specified group|
00008850  28 73 29 2e 20 4e 6f 72  6d 61 6c 6c 79 20 74 68  |(s). Normally th|
00008860  69 73 20 66 75 6e 63 74  69 6f 6e 20 69 73 20 70  |is function is p|
00008870  65 72 66 6f 72 6d 65 64  20 61 75 74 6f 6d 61 74  |erformed automat|
00008880  69 63 61 6c 6c 79 20 62  79 20 4e 65 77 73 42 61  |ically by NewsBa|
00008890  73 65 2c 20 62 75 74 20  61 20 63 6f 6d 6d 61 6e  |se, but a comman|
000088a0  64 20 69 6e 74 65 72 66  61 63 65 20 69 73 20 69  |d interface is i|
000088b0  6e 63 6c 75 64 65 64 20  66 6f 72 20 63 6f 6d 70  |ncluded for comp|
000088c0  6c 65 74 65 6e 65 73 73  2e 0a 00 00 44 41 54 41  |leteness....DATA|
000088d0  0c 01 00 00 4e 65 77 73  42 61 73 65 5f 4c 69 73  |....NewsBase_Lis|
000088e0  74 41 72 74 73 20 28 32  30 30 29 0a 2b 32 34 09  |tArts (200).+24.|
000088f0  66 69 72 73 74 20 61 72  74 69 63 6c 65 20 6e 75  |first article nu|
00008900  6d 62 65 72 20 28 30 3d  66 69 72 73 74 29 0a 2b  |mber (0=first).+|
00008910  32 38 09 6c 61 73 74 20  61 72 74 69 63 6c 65 20  |28.last article |
00008920  6e 75 6d 62 65 72 20 28  30 3d 6c 61 73 74 29 0a  |number (0=last).|
00008930  2b 33 32 09 67 72 6f 75  70 20 6e 61 6d 65 0a 0a  |+32.group name..|
00008940  52 65 74 75 72 6e 73 20  61 20 6c 69 73 74 20 6f  |Returns a list o|
00008950  66 20 61 72 74 69 63 6c  65 20 6e 75 6d 62 65 72  |f article number|
00008960  73 20 77 69 74 68 20 61  73 73 6f 63 69 61 74 65  |s with associate|
00008970  64 20 22 46 72 6f 6d 22  2c 20 22 53 75 62 6a 65  |d "From", "Subje|
00008980  63 74 22 2c 20 22 4d 65  73 73 61 67 65 2d 49 44  |ct", "Message-ID|
00008990  22 20 61 6e 64 20 22 44  61 74 65 22 20 68 65 61  |" and "Date" hea|
000089a0  64 65 72 20 66 69 65 6c  64 73 2e 20 49 6e 74 65  |der fields. Inte|
000089b0  6e 64 65 64 20 66 6f 72  20 64 69 73 70 6c 61 79  |nded for display|
000089c0  20 6f 66 20 61 72 74 69  63 6c 65 20 63 61 74 61  | of article cata|
000089d0  6c 6f 67 75 65 73 2e 0a  44 41 54 41 2d 05 00 00  |logues..DATA-...|
000089e0  4e 65 77 73 42 61 73 65  5f 4c 69 73 74 41 72 74  |NewsBase_ListArt|
000089f0  73 49 6e 66 6f 20 28 32  31 30 29 0a 2b 32 34 09  |sInfo (210).+24.|
00008a00  66 69 72 73 74 20 61 72  74 69 63 6c 65 20 6e 75  |first article nu|
00008a10  6d 62 65 72 20 28 30 3d  66 69 72 73 74 29 0a 2b  |mber (0=first).+|
00008a20  32 38 09 6c 61 73 74 20  61 72 74 69 63 6c 65 20  |28.last article |
00008a30  6e 75 6d 62 65 72 20 28  30 3d 6c 61 73 74 29 0a  |number (0=last).|
00008a40  2b 33 32 09 67 72 6f 75  70 20 6e 61 6d 65 0a 2b  |+32.group name.+|
00008a50  33 32 2b 6e 09 73 74 72  69 6e 67 20 6f 66 20 3c  |32+n.string of <|
00008a60  66 6c 61 67 73 3d 3e 2e  66 6c 61 67 73 3e 20 69  |flags=>.flags> i|
00008a70  6e 64 69 63 61 74 69 6e  67 20 64 61 74 61 20 72  |ndicating data r|
00008a80  65 71 75 69 72 65 64 0a  0a 52 65 74 75 72 6e 73  |equired..Returns|
00008a90  20 61 20 6c 69 73 74 20  6f 66 20 61 72 74 69 63  | a list of artic|
00008aa0  6c 65 20 6e 75 6d 62 65  72 73 20 77 69 74 68 20  |le numbers with |
00008ab0  65 78 74 72 61 20 68 65  61 64 65 72 20 69 6e 66  |extra header inf|
00008ac0  6f 72 6d 61 74 69 6f 6e  2e 20 52 65 70 6c 69 65  |ormation. Replie|
00008ad0  73 20 74 61 6b 65 20 74  68 65 20 66 6f 72 6d 20  |s take the form |
00008ae0  6f 66 20 6f 6e 65 20 3c  4e 65 77 73 62 61 73 65  |of one <Newsbase|
00008af0  5f 52 65 70 6c 79 20 32  30 30 3d 3e 4d 73 67 5f  |_Reply 200=>Msg_|
00008b00  4e 42 5f 52 65 70 32 30  30 3e 20 6d 65 73 73 61  |NB_Rep200> messa|
00008b10  67 65 20 28 46 72 6f 6d  2c 20 53 75 62 6a 65 63  |ge (From, Subjec|
00008b20  74 20 61 6e 64 20 4d 65  73 73 61 67 65 2d 49 44  |t and Message-ID|
00008b30  29 20 61 6e 64 20 6f 6e  65 20 6f 72 20 6d 6f 72  |) and one or mor|
00008b40  65 20 3c 4e 65 77 73 62  61 73 65 5f 52 65 70 6c  |e <Newsbase_Repl|
00008b50  79 20 32 31 30 3d 3e 4d  73 67 5f 4e 42 5f 52 65  |y 210=>Msg_NB_Re|
00008b60  70 32 31 30 3e 20 6d 65  73 73 61 67 65 2c 20 63  |p210> message, c|
00008b70  6f 6e 74 61 69 6e 69 6e  67 20 74 68 65 20 65 78  |ontaining the ex|
00008b80  74 72 61 20 64 61 74 61  2c 20 66 6f 72 20 65 61  |tra data, for ea|
00008b90  63 68 20 61 72 74 69 63  6c 65 2e 0a 0a 4d 6f 72  |ch article...Mor|
00008ba0  65 20 74 68 61 6e 20 6f  6e 65 20 64 61 74 61 20  |e than one data |
00008bb0  69 74 65 6d 20 6d 61 79  20 62 65 20 72 65 71 75  |item may be requ|
00008bc0  65 73 74 65 64 20 2d 20  65 67 2c 20 61 20 66 6c  |ested - eg, a fl|
00008bd0  61 67 20 73 74 72 69 6e  67 20 6f 66 20 22 72 64  |ag string of "rd|
00008be0  78 22 20 77 6f 75 6c 64  20 72 65 74 75 72 6e 2c  |x" would return,|
00008bf0  20 66 6f 72 20 65 61 63  68 20 61 72 74 69 63 6c  | for each articl|
00008c00  65 2c 20 66 69 72 73 74  20 74 68 65 20 6e 6f 72  |e, first the nor|
00008c10  6d 61 6c 20 4e 65 77 73  62 61 73 65 5f 52 65 70  |mal Newsbase_Rep|
00008c20  6c 79 20 32 30 30 20 6d  65 73 73 61 67 65 2c 20  |ly 200 message, |
00008c30  66 6f 6c 6c 6f 77 65 64  20 62 79 20 74 68 72 65  |followed by thre|
00008c40  65 20 4e 65 77 73 62 61  73 65 5f 52 65 70 6c 79  |e Newsbase_Reply|
00008c50  20 32 31 30 20 6d 65 73  73 61 67 65 73 3b 20 63  | 210 messages; c|
00008c60  6f 6e 74 61 69 6e 69 6e  67 20 74 68 65 20 52 65  |ontaining the Re|
00008c70  66 65 72 65 6e 63 65 73  2c 20 44 61 74 65 20 61  |ferences, Date a|
00008c80  6e 64 20 58 72 65 66 3a  20 68 65 61 64 65 72 73  |nd Xref: headers|
00008c90  2e 0a 0a 49 74 20 73 68  6f 75 6c 64 20 6e 6f 74  |...It should not|
00008ca0  20 6e 6f 72 6d 61 6c 6c  79 20 62 65 20 6e 65 63  | normally be nec|
00008cb0  65 73 73 61 72 79 20 74  6f 20 72 65 71 75 65 73  |essary to reques|
00008cc0  74 20 74 68 65 20 44 61  74 65 2c 20 46 72 6f 6d  |t the Date, From|
00008cd0  2c 20 53 75 62 6a 65 63  74 2c 20 6f 72 20 4d 65  |, Subject, or Me|
00008ce0  73 73 61 67 65 2d 49 44  20 68 65 61 64 65 72 73  |ssage-ID headers|
00008cf0  2c 20 61 73 20 74 68 69  73 20 69 6e 66 6f 72 6d  |, as this inform|
00008d00  61 74 69 6f 6e 20 69 73  20 72 65 74 75 72 6e 65  |ation is returne|
00008d10  64 20 69 6e 20 4e 65 77  73 62 61 73 65 5f 52 65  |d in Newsbase_Re|
00008d20  70 6c 79 20 32 30 30 20  61 6e 79 77 61 79 2e 20  |ply 200 anyway. |
00008d30  48 6f 77 65 76 65 72 2c  20 74 68 65 79 20 6d 61  |However, they ma|
00008d40  79 20 62 65 20 72 65 71  75 65 73 74 65 64 20 69  |y be requested i|
00008d50  66 20 74 68 65 20 69 6e  66 6f 72 6d 61 74 69 6f  |f the informatio|
00008d60  6e 20 69 73 20 69 6d 70  6f 72 74 61 6e 74 20 28  |n is important (|
00008d70  61 73 20 74 68 65 20 4e  65 77 73 62 61 73 65 5f  |as the Newsbase_|
00008d80  52 65 70 6c 79 20 32 30  30 20 66 6f 72 6d 73 20  |Reply 200 forms |
00008d90  6d 61 79 20 62 65 20 74  72 75 6e 63 61 74 65 64  |may be truncated|
00008da0  20 64 75 65 20 74 6f 20  74 68 65 20 6c 69 6d 69  | due to the limi|
00008db0  74 65 64 20 73 70 61 63  65 20 61 76 61 69 6c 61  |ted space availa|
00008dc0  62 6c 65 20 69 6e 20 61  20 73 69 6e 67 6c 65 20  |ble in a single |
00008dd0  77 69 6d 70 20 6d 65 73  73 61 67 65 29 2e 0a 0a  |wimp message)...|
00008de0  46 6f 72 20 63 6f 6d 70  61 74 69 62 69 6c 69 74  |For compatibilit|
00008df0  79 20 77 69 74 68 20 6f  6c 64 65 72 20 76 65 72  |y with older ver|
00008e00  73 69 6f 6e 73 20 6f 66  20 4e 65 77 73 62 61 73  |sions of Newsbas|
00008e10  65 2c 20 69 66 20 6e 6f  20 66 6c 61 67 20 73 74  |e, if no flag st|
00008e20  72 69 6e 67 20 69 73 20  67 69 76 65 6e 2c 20 74  |ring is given, t|
00008e30  68 65 20 66 6c 61 67 20  22 72 22 20 28 74 6f 20  |he flag "r" (to |
00008e40  72 65 74 75 72 6e 20 52  65 66 65 72 65 6e 63 65  |return Reference|
00008e50  73 29 20 69 73 20 61 73  73 75 6d 65 64 2e 0a 23  |s) is assumed..#|
00008e60  53 75 62 70 61 67 65 20  66 6c 61 67 73 0a 4c 69  |Subpage flags.Li|
00008e70  73 74 41 72 74 73 49 6e  66 6f 20 66 6c 61 67 73  |stArtsInfo flags|
00008e80  0a 46 6c 61 67 09 56 61  6c 75 65 20 72 65 74 75  |.Flag.Value retu|
00008e90  72 6e 65 64 0a 23 4c 69  6e 65 0a 72 20 09 52 65  |rned.#Line.r .Re|
00008ea0  66 65 72 65 6e 63 65 73  20 68 65 61 64 65 72 0a  |ferences header.|
00008eb0  64 20 09 44 61 74 65 20  68 65 61 64 65 72 0a 66  |d .Date header.f|
00008ec0  20 09 46 72 6f 6d 20 68  65 61 64 65 72 0a 73 20  | .From header.s |
00008ed0  09 53 75 62 6a 65 63 74  20 68 65 61 64 65 72 0a  |.Subject header.|
00008ee0  6d 20 09 4d 65 73 73 61  67 65 2d 49 44 20 68 65  |m .Message-ID he|
00008ef0  61 64 65 72 0a 78 20 09  58 72 65 66 3a 20 68 65  |ader.x .Xref: he|
00008f00  61 64 65 72 0a 00 00 00  44 41 54 41 99 01 00 00  |ader....DATA....|
00008f10  4e 65 77 73 42 61 73 65  5f 47 65 74 41 72 74 69  |NewsBase_GetArti|
00008f20  63 6c 65 20 28 32 32 30  29 0a 2b 32 30 09 61 72  |cle (220).+20.ar|
00008f30  74 69 63 6c 65 20 6e 75  6d 62 65 72 0a 2b 32 34  |ticle number.+24|
00008f40  09 3c 66 6c 61 67 73 3d  3e 2e 66 6c 61 67 73 3e  |.<flags=>.flags>|
00008f50  0a 2b 33 32 09 67 72 6f  75 70 20 6e 61 6d 65 0a  |.+32.group name.|
00008f60  2b 33 32 2b 6e 09 4d 65  73 73 61 67 65 2d 49 44  |+32+n.Message-ID|
00008f70  0a 0a 54 68 69 73 20 63  6f 6d 6d 61 6e 64 20 77  |..This command w|
00008f80  69 6c 6c 20 65 69 74 68  65 72 20 72 65 74 75 72  |ill either retur|
00008f90  6e 20 74 68 65 20 66 69  6c 65 6e 61 6d 65 20 6f  |n the filename o|
00008fa0  66 20 74 68 65 20 66 75  6c 6c 20 61 72 74 69 63  |f the full artic|
00008fb0  6c 65 2c 20 6f 72 20 72  65 71 75 65 73 74 20 74  |le, or request t|
00008fc0  68 61 74 20 74 68 65 20  66 75 6c 6c 20 61 72 74  |hat the full art|
00008fd0  69 63 6c 65 20 62 65 20  66 65 74 63 68 65 64 2e  |icle be fetched.|
00008fe0  0a 23 53 75 62 70 61 67  65 20 66 6c 61 67 73 0a  |.#Subpage flags.|
00008ff0  47 65 74 41 72 74 69 63  6c 65 20 66 6c 61 67 73  |GetArticle flags|
00009000  0a 42 69 74 09 4d 65 61  6e 69 6e 67 20 69 66 20  |.Bit.Meaning if |
00009010  73 65 74 0a 23 4c 69 6e  65 0a 30 09 52 65 71 75  |set.#Line.0.Requ|
00009020  65 73 74 20 4d 65 73 73  61 67 65 2d 49 44 20 74  |est Message-ID t|
00009030  6f 20 62 65 20 66 65 74  63 68 65 64 2c 20 6f 74  |o be fetched, ot|
00009040  68 65 72 77 69 73 65 20  72 65 74 75 72 6e 20 61  |herwise return a|
00009050  20 76 61 6c 69 64 20 66  69 6c 65 6e 61 6d 65 0a  | valid filename.|
00009060  09 4e 6f 74 65 3a 20 54  68 65 20 66 69 6c 65 6e  |.Note: The filen|
00009070  61 6d 65 20 72 65 74 75  72 6e 65 64 20 6d 61 79  |ame returned may|
00009080  20 6e 6f 74 20 62 65 20  76 61 6c 69 64 20 61 63  | not be valid ac|
00009090  72 6f 73 73 20 3c 57 69  6d 70 5f 50 6f 6c 6c 3e  |ross <Wimp_Poll>|
000090a0  73 00 00 00 44 41 54 41  a5 00 00 00 4e 65 77 73  |s...DATA....News|
000090b0  42 61 73 65 5f 4c 6f 63  6b 41 72 74 69 63 6c 65  |Base_LockArticle|
000090c0  20 28 32 33 30 29 0a 2b  32 34 09 66 69 72 73 74  | (230).+24.first|
000090d0  20 61 72 74 69 63 6c 65  20 6e 75 6d 62 65 72 20  | article number |
000090e0  28 30 3d 66 69 72 73 74  29 0a 2b 32 38 09 6c 61  |(0=first).+28.la|
000090f0  73 74 20 61 72 74 69 63  6c 65 20 6e 75 6d 62 65  |st article numbe|
00009100  72 20 28 30 3d 6c 61 73  74 29 0a 2b 33 32 09 67  |r (0=last).+32.g|
00009110  72 6f 75 70 20 6e 61 6d  65 0a 0a 4c 6f 63 6b 73  |roup name..Locks|
00009120  20 6f 6e 65 20 6f 72 20  6d 6f 72 65 20 61 72 74  | one or more art|
00009130  69 63 6c 65 73 20 74 6f  20 70 72 65 76 65 6e 74  |icles to prevent|
00009140  20 65 78 70 69 72 79 2e  0a 00 00 00 44 41 54 41  | expiry.....DATA|
00009150  a7 00 00 00 4e 65 77 73  42 61 73 65 5f 55 6e 4c  |....NewsBase_UnL|
00009160  6f 63 6b 41 72 74 69 63  6c 65 20 28 32 34 30 29  |ockArticle (240)|
00009170  0a 2b 32 34 09 66 69 72  73 74 20 61 72 74 69 63  |.+24.first artic|
00009180  6c 65 20 6e 75 6d 62 65  72 20 28 30 3d 66 69 72  |le number (0=fir|
00009190  73 74 29 0a 2b 32 38 09  6c 61 73 74 20 61 72 74  |st).+28.last art|
000091a0  69 63 6c 65 20 6e 75 6d  62 65 72 20 28 30 3d 6c  |icle number (0=l|
000091b0  61 73 74 29 0a 2b 33 32  09 67 72 6f 75 70 20 6e  |ast).+32.group n|
000091c0  61 6d 65 0a 0a 55 6e 6c  6f 63 6b 73 20 6f 6e 65  |ame..Unlocks one|
000091d0  20 6f 72 20 6d 6f 72 65  20 61 72 74 69 63 6c 65  | or more article|
000091e0  73 20 74 6f 20 61 6c 6c  6f 77 20 65 78 70 69 72  |s to allow expir|
000091f0  79 2e 0a 00 44 41 54 41  cf 00 00 00 4e 65 77 73  |y...DATA....News|
00009200  42 61 73 65 5f 44 65 6c  65 74 65 41 72 74 69 63  |Base_DeleteArtic|
00009210  6c 65 20 28 32 35 30 29  0a 2b 32 34 09 66 69 72  |le (250).+24.fir|
00009220  73 74 20 61 72 74 69 63  6c 65 20 6e 75 6d 62 65  |st article numbe|
00009230  72 20 28 30 3d 66 69 72  73 74 29 0a 2b 32 38 09  |r (0=first).+28.|
00009240  6c 61 73 74 20 61 72 74  69 63 6c 65 20 6e 75 6d  |last article num|
00009250  62 65 72 20 28 30 3d 6c  61 73 74 29 0a 2b 33 32  |ber (0=last).+32|
00009260  09 67 72 6f 75 70 20 6e  61 6d 65 0a 0a 44 65 6c  |.group name..Del|
00009270  65 74 65 73 20 6f 6e 65  20 6f 72 20 6d 6f 72 65  |etes one or more|
00009280  20 61 72 74 69 63 6c 65  73 2c 20 69 66 20 61 72  | articles, if ar|
00009290  74 69 63 6c 65 73 20 61  72 65 20 6e 6f 74 20 6c  |ticles are not l|
000092a0  6f 63 6b 65 64 2c 20 61  6e 64 20 69 66 20 64 65  |ocked, and if de|
000092b0  6c 65 74 69 6f 6e 20 69  73 20 65 6e 61 62 6c 65  |letion is enable|
000092c0  64 2e 0a 00 44 41 54 41  89 01 00 00 4e 65 77 73  |d...DATA....News|
000092d0  42 61 73 65 5f 4d 6f 76  65 41 72 74 69 63 6c 65  |Base_MoveArticle|
000092e0  20 28 32 36 30 29 0a 2b  32 34 09 66 69 72 73 74  | (260).+24.first|
000092f0  20 61 72 74 69 63 6c 65  20 6e 75 6d 62 65 72 20  | article number |
00009300  28 30 3d 66 69 72 73 74  29 0a 2b 32 38 09 6c 61  |(0=first).+28.la|
00009310  73 74 20 61 72 74 69 63  6c 65 20 6e 75 6d 62 65  |st article numbe|
00009320  72 20 28 30 3d 6c 61 73  74 29 0a 2b 33 32 09 67  |r (0=last).+32.g|
00009330  72 6f 75 70 20 6e 61 6d  65 0a 2b 33 32 2b 6e 09  |roup name.+32+n.|
00009340  64 65 73 74 69 6e 61 74  69 6f 6e 20 66 6f 6c 64  |destination fold|
00009350  65 72 20 6e 61 6d 65 0a  0a 4d 6f 76 65 73 20 61  |er name..Moves a|
00009360  6e 20 61 72 74 69 63 6c  65 20 66 72 6f 6d 20 6f  |n article from o|
00009370  6e 65 20 67 72 6f 75 70  20 74 6f 20 61 6e 6f 74  |ne group to anot|
00009380  68 65 72 2e 20 54 68 65  20 63 6f 6d 6d 61 6e 64  |her. The command|
00009390  20 69 73 20 6f 6e 6c 79  20 76 61 6c 69 64 20 66  | is only valid f|
000093a0  6f 72 20 65 6d 61 69 6c  20 61 72 74 69 63 6c 65  |or email article|
000093b0  73 3b 20 6e 65 77 73 20  61 72 74 69 63 6c 65 73  |s; news articles|
000093c0  20 63 61 6e 6e 6f 74 20  62 65 20 6d 6f 76 65 64  | cannot be moved|
000093d0  2e 20 49 66 20 74 68 65  20 64 65 73 74 69 6e 61  |. If the destina|
000093e0  74 69 6f 6e 20 66 6f 6c  64 65 72 20 64 6f 65 73  |tion folder does|
000093f0  20 6e 6f 74 20 65 78 69  73 74 2c 20 69 74 20 69  | not exist, it i|
00009400  73 20 63 72 65 61 74 65  64 20 28 66 6f 6c 64 65  |s created (folde|
00009410  72 73 20 63 61 6e 20 6f  6e 6c 79 20 62 65 20 63  |rs can only be c|
00009420  72 65 61 74 65 64 20 69  6e 20 74 68 65 20 45 6d  |reated in the Em|
00009430  61 69 6c 20 6f 72 20 46  6f 6c 64 65 72 73 20 68  |ail or Folders h|
00009440  69 65 72 61 72 63 68 69  65 73 29 2e 0a 00 00 00  |ierarchies).....|
00009450  44 41 54 41 69 01 00 00  4e 65 77 73 42 61 73 65  |DATAi...NewsBase|
00009460  5f 43 6f 70 79 41 72 74  69 63 6c 65 20 28 32 37  |_CopyArticle (27|
00009470  30 29 0a 2b 32 34 09 66  69 72 73 74 20 61 72 74  |0).+24.first art|
00009480  69 63 6c 65 20 6e 75 6d  62 65 72 20 28 30 3d 66  |icle number (0=f|
00009490  69 72 73 74 29 0a 2b 32  38 09 6c 61 73 74 20 61  |irst).+28.last a|
000094a0  72 74 69 63 6c 65 20 6e  75 6d 62 65 72 20 28 30  |rticle number (0|
000094b0  3d 6c 61 73 74 29 0a 2b  33 32 09 67 72 6f 75 70  |=last).+32.group|
000094c0  20 6e 61 6d 65 0a 2b 33  32 2b 6e 09 64 65 73 74  | name.+32+n.dest|
000094d0  69 6e 61 74 69 6f 6e 20  66 6f 6c 64 65 72 20 6e  |ination folder n|
000094e0  61 6d 65 0a 0a 43 6f 70  69 65 73 20 61 6e 20 61  |ame..Copies an a|
000094f0  72 74 69 63 6c 65 20 66  72 6f 6d 20 6f 6e 65 20  |rticle from one |
00009500  67 72 6f 75 70 20 74 6f  20 61 6e 6f 74 68 65 72  |group to another|
00009510  2e 20 54 68 65 20 63 6f  6d 6d 61 6e 64 20 63 61  |. The command ca|
00009520  6e 20 62 65 20 61 70 70  6c 69 65 64 20 74 6f 20  |n be applied to |
00009530  6e 65 77 73 20 6f 72 20  6d 61 69 6c 2e 20 49 66  |news or mail. If|
00009540  20 74 68 65 20 64 65 73  74 69 6e 61 74 69 6f 6e  | the destination|
00009550  20 66 6f 6c 64 65 72 20  64 6f 65 73 20 6e 6f 74  | folder does not|
00009560  20 65 78 69 73 74 2c 20  69 74 20 69 73 20 63 72  | exist, it is cr|
00009570  65 61 74 65 64 20 28 66  6f 6c 64 65 72 73 20 63  |eated (folders c|
00009580  61 6e 20 6f 6e 6c 79 20  62 65 20 63 72 65 61 74  |an only be creat|
00009590  65 64 20 69 6e 20 74 68  65 20 45 6d 61 69 6c 20  |ed in the Email |
000095a0  6f 72 20 46 6f 6c 64 65  72 73 20 68 69 65 72 61  |or Folders hiera|
000095b0  72 63 68 69 65 73 29 2e  0a 00 00 00 44 41 54 41  |rchies).....DATA|
000095c0  81 00 00 00 4e 65 77 73  42 61 73 65 5f 43 61 6e  |....NewsBase_Can|
000095d0  63 65 6c 41 72 74 69 63  6c 65 20 28 32 38 30 29  |celArticle (280)|
000095e0  0a 2b 33 32 09 67 72 6f  75 70 20 6e 61 6d 65 28  |.+32.group name(|
000095f0  73 29 0a 2b 33 32 2b 6e  09 6d 65 73 73 61 67 65  |s).+32+n.message|
00009600  2d 49 44 20 73 74 72 69  6e 67 0a 0a 53 65 6e 64  |-ID string..Send|
00009610  73 20 61 20 63 61 6e 63  65 6c 20 6d 65 73 73 61  |s a cancel messa|
00009620  67 65 20 66 6f 72 20 74  68 65 20 67 69 76 65 6e  |ge for the given|
00009630  20 61 72 74 69 63 6c 65  20 49 44 2e 0a 00 00 00  | article ID.....|
00009640  44 41 54 41 f6 00 00 00  4e 65 77 73 42 61 73 65  |DATA....NewsBase|
00009650  5f 50 6f 73 74 41 72 74  69 63 6c 65 20 28 33 30  |_PostArticle (30|
00009660  30 29 0a 2b 32 34 09 66  6c 61 67 73 0a 2b 32 38  |0).+24.flags.+28|
00009670  09 72 65 73 65 72 76 65  64 20 28 6d 75 73 74 20  |.reserved (must |
00009680  62 65 20 30 29 0a 2b 33  32 09 66 69 6c 65 20 6e  |be 0).+32.file n|
00009690  61 6d 65 0a 2b 33 32 2b  6e 09 6c 6f 63 61 6c 20  |ame.+32+n.local |
000096a0  66 69 6c 65 20 63 6f 70  79 20 66 6f 6c 64 65 72  |file copy folder|
000096b0  2c 20 2d 20 74 6f 20 70  72 65 76 65 6e 74 20 66  |, - to prevent f|
000096c0  69 6c 69 6e 67 2c 20 6f  72 20 6e 75 6c 6c 20 66  |iling, or null f|
000096d0  6f 72 20 64 65 66 61 75  6c 74 0a 0a 50 6f 73 74  |or default..Post|
000096e0  73 20 61 6e 20 61 72 74  69 63 6c 65 2e 20 54 68  |s an article. Th|
000096f0  65 20 66 69 6c 65 20 73  68 6f 75 6c 64 20 63 6f  |e file should co|
00009700  6e 74 61 69 6e 20 61 6e  20 61 72 74 69 63 6c 65  |ntain an article|
00009710  20 63 6f 6d 70 6c 65 74  65 20 77 69 74 68 20 52  | complete with R|
00009720  46 43 2d 63 6f 6d 70 6c  69 61 6e 74 20 68 65 61  |FC-compliant hea|
00009730  64 65 72 73 2e 0a 00 00  44 41 54 41 f9 00 00 00  |ders....DATA....|
00009740  4e 65 77 73 42 61 73 65  5f 4d 61 69 6c 41 72 74  |NewsBase_MailArt|
00009750  69 63 6c 65 20 28 33 31  30 29 0a 2b 32 34 09 66  |icle (310).+24.f|
00009760  6c 61 67 73 0a 2b 32 38  09 72 65 73 65 72 76 65  |lags.+28.reserve|
00009770  64 20 28 6d 75 73 74 20  62 65 20 30 29 0a 2b 33  |d (must be 0).+3|
00009780  32 09 66 69 6c 65 20 6e  61 6d 65 0a 2b 33 32 2b  |2.file name.+32+|
00009790  6e 09 6c 6f 63 61 6c 20  66 69 6c 65 20 63 6f 70  |n.local file cop|
000097a0  79 20 66 6f 6c 64 65 72  2c 20 2d 20 74 6f 20 70  |y folder, - to p|
000097b0  72 65 76 65 6e 74 20 66  69 6c 69 6e 67 2c 20 6f  |revent filing, o|
000097c0  72 20 6e 75 6c 6c 20 66  6f 72 20 64 65 66 61 75  |r null for defau|
000097d0  6c 74 0a 0a 53 65 6e 64  73 20 61 20 6d 61 69 6c  |lt..Sends a mail|
000097e0  20 6d 65 73 73 61 67 65  2e 20 54 68 65 20 66 69  | message. The fi|
000097f0  6c 65 20 73 68 6f 75 6c  64 20 63 6f 6e 74 61 69  |le should contai|
00009800  6e 20 61 20 6d 65 73 73  61 67 65 20 63 6f 6d 70  |n a message comp|
00009810  6c 65 74 65 20 77 69 74  68 20 52 46 43 2d 63 6f  |lete with RFC-co|
00009820  6d 70 6c 69 61 6e 74 20  68 65 61 64 65 72 73 2e  |mpliant headers.|
00009830  0a 00 00 00 44 41 54 41  cf 01 00 00 4e 65 77 73  |....DATA....News|
00009840  42 61 73 65 5f 4c 69 73  74 55 73 65 72 73 20 28  |Base_ListUsers (|
00009850  34 30 30 29 0a 2b 32 34  09 3c 66 6c 61 67 73 3d  |400).+24.<flags=|
00009860  3e 2e 66 6c 61 67 73 3e  0a 2b 32 38 09 72 65 73  |>.flags>.+28.res|
00009870  65 72 76 65 64 20 28 6d  75 73 74 20 62 65 20 30  |erved (must be 0|
00009880  29 0a 2b 33 32 09 70 61  74 74 65 72 6e 2c 20 6f  |).+32.pattern, o|
00009890  72 20 6e 75 6c 6c 20 66  6f 72 20 61 6c 6c 0a 0a  |r null for all..|
000098a0  52 65 74 75 72 6e 73 20  61 20 6c 69 73 74 20 6f  |Returns a list o|
000098b0  66 20 76 61 6c 69 64 20  75 73 65 72 6e 61 6d 65  |f valid username|
000098c0  73 2c 20 77 69 74 68 20  74 68 65 69 72 20 67 72  |s, with their gr|
000098d0  6f 75 70 20 6e 75 6d 62  65 72 73 20 61 6e 64 20  |oup numbers and |
000098e0  68 6f 6d 65 20 64 69 72  65 63 74 6f 72 69 65 73  |home directories|
000098f0  2e 20 54 68 65 20 68 6f  6d 65 20 64 69 72 65 63  |. The home direc|
00009900  74 6f 72 79 20 69 73 20  61 20 64 69 72 65 63 74  |tory is a direct|
00009910  6f 72 79 20 73 70 65 63  69 66 69 63 20 74 6f 20  |ory specific to |
00009920  74 68 61 74 20 75 73 65  72 20 77 68 69 63 68 20  |that user which |
00009930  63 61 6e 20 62 65 20 75  73 65 64 20 74 6f 20 73  |can be used to s|
00009940  74 6f 72 65 20 63 6f 6e  66 69 67 75 72 61 74 69  |tore configurati|
00009950  6f 6e 20 69 6e 66 6f 72  6d 61 74 69 6f 6e 2c 20  |on information, |
00009960  65 67 20 72 65 63 6f 72  64 20 6f 66 20 73 75 62  |eg record of sub|
00009970  73 63 72 69 62 65 64 20  67 72 6f 75 70 73 20 6f  |scribed groups o|
00009980  72 20 72 65 61 64 20 61  72 74 69 63 6c 65 73 2e  |r read articles.|
00009990  0a 23 53 75 62 70 61 67  65 20 66 6c 61 67 73 0a  |.#Subpage flags.|
000099a0  4c 69 73 74 55 73 65 72  73 20 66 6c 61 67 73 0a  |ListUsers flags.|
000099b0  42 69 74 09 4d 65 61 6e  69 6e 67 20 69 66 20 73  |Bit.Meaning if s|
000099c0  65 74 0a 23 4c 69 6e 65  0a 30 09 6c 69 73 74 20  |et.#Line.0.list |
000099d0  61 6c 6c 20 75 73 65 72  73 20 28 6f 74 68 65 72  |all users (other|
000099e0  77 69 73 65 20 6a 75 73  74 20 74 68 6f 73 65 20  |wise just those |
000099f0  77 68 6f 20 61 72 65 6e  27 74 20 68 69 64 64 65  |who aren't hidde|
00009a00  6e 29 0a 00 44 41 54 41  2e 00 00 00 4e 65 77 73  |n)..DATA....News|
00009a10  42 61 73 65 5f 41 64 64  55 73 65 72 20 28 34 31  |Base_AddUser (41|
00009a20  30 29 0a 2b 33 32 09 75  73 65 72 20 6e 61 6d 65  |0).+32.user name|
00009a30  0a 0a 00 00 44 41 54 41  73 00 00 00 4e 65 77 73  |....DATAs...News|
00009a40  42 61 73 65 5f 44 65 6c  65 74 65 55 73 65 72 20  |Base_DeleteUser |
00009a50  28 34 32 30 29 0a 2b 32  34 09 72 65 73 65 72 76  |(420).+24.reserv|
00009a60  65 64 20 28 6d 75 73 74  20 62 65 20 30 29 0a 2b  |ed (must be 0).+|
00009a70  32 38 09 72 65 73 65 72  76 65 64 20 28 6d 75 73  |28.reserved (mus|
00009a80  74 20 62 65 20 30 29 0a  2b 33 32 09 75 73 65 72  |t be 0).+32.user|
00009a90  20 6e 61 6d 65 0a 0a 44  65 6c 65 74 65 73 20 61  | name..Deletes a|
00009aa0  20 75 73 65 72 2e 0a 00  44 41 54 41 ae 00 00 00  | user...DATA....|
00009ab0  4e 65 77 73 42 61 73 65  5f 4d 6f 64 69 66 79 55  |NewsBase_ModifyU|
00009ac0  73 65 72 20 28 34 33 30  29 0a 2b 32 34 09 3c 69  |ser (430).+24.<i|
00009ad0  74 65 6d 20 74 6f 20 6d  6f 64 69 66 79 3d 3e 4d  |tem to modify=>M|
00009ae0  73 67 5f 4e 42 5f 43 6f  6d 34 33 30 69 74 65 6d  |sg_NB_Com430item|
00009af0  73 3e 0a 2b 32 38 09 3c  66 6c 61 67 73 3d 3e 4d  |s>.+28.<flags=>M|
00009b00  73 67 5f 4e 42 5f 43 6f  6d 34 33 30 66 6c 61 67  |sg_NB_Com430flag|
00009b10  73 3e 0a 2b 33 32 09 75  73 65 72 20 6e 61 6d 65  |s>.+32.user name|
00009b20  0a 2b 33 32 2b 6e 09 6e  65 77 20 76 61 6c 75 65  |.+32+n.new value|
00009b30  20 6f 66 20 69 74 65 6d  0a 0a 4d 6f 64 69 66 69  | of item..Modifi|
00009b40  65 73 20 74 68 65 20 75  73 65 72 20 64 61 74 61  |es the user data|
00009b50  62 61 73 65 2e 0a 00 00  44 41 54 41 0e 01 00 00  |base....DATA....|
00009b60  4e 65 77 73 42 61 73 65  5f 47 65 74 55 73 65 72  |NewsBase_GetUser|
00009b70  49 6e 66 6f 20 28 34 34  30 29 0a 2b 32 34 09 3c  |Info (440).+24.<|
00009b80  69 74 65 6d 20 74 6f 20  72 65 74 75 72 6e 3d 3e  |item to return=>|
00009b90  4d 73 67 5f 4e 42 5f 43  6f 6d 34 33 30 69 74 65  |Msg_NB_Com430ite|
00009ba0  6d 73 3e 20 6f 72 20 30  20 66 6f 72 20 61 6c 6c  |ms> or 0 for all|
00009bb0  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 0a 2b 32 38  | information.+28|
00009bc0  09 72 65 73 65 72 76 65  64 20 28 6d 75 73 74 20  |.reserved (must |
00009bd0  30 29 0a 2b 33 32 09 75  73 65 72 20 6e 61 6d 65  |0).+32.user name|
00009be0  20 6f 72 20 70 61 74 74  65 72 6e 0a 2b 33 32 2b  | or pattern.+32+|
00009bf0  6e 09 64 61 74 61 20 73  74 72 69 6e 67 0a 0a 52  |n.data string..R|
00009c00  65 74 75 72 6e 73 20 69  6e 66 6f 72 6d 61 74 69  |eturns informati|
00009c10  6f 6e 20 61 62 6f 75 74  20 61 20 75 73 65 72 2e  |on about a user.|
00009c20  0a 0a 54 68 65 20 64 61  74 61 20 73 74 72 69 6e  |..The data strin|
00009c30  67 20 69 73 20 75 73 65  64 20 74 6f 20 72 65 74  |g is used to ret|
00009c40  75 72 6e 20 74 68 65 20  74 61 72 67 65 74 20 66  |urn the target f|
00009c50  69 6c 65 6e 61 6d 65 20  76 69 61 20 69 74 65 6d  |ilename via item|
00009c60  20 31 30 30 2e 0a 00 00  44 41 54 41 6e 00 00 00  | 100....DATAn...|
00009c70  4e 65 77 73 42 61 73 65  5f 45 78 61 6d 69 6e 65  |NewsBase_Examine|
00009c80  46 6f 72 77 61 72 64 69  6e 67 20 28 34 35 30 29  |Forwarding (450)|
00009c90  0a 54 68 69 73 20 63 6f  6d 6d 61 6e 64 20 69 73  |.This command is|
00009ca0  20 6f 62 73 6f 6c 65 74  65 20 2d 20 75 73 65 20  | obsolete - use |
00009cb0  3c 43 6f 6d 6d 61 6e 64  20 34 33 30 3d 3e 4d 73  |<Command 430=>Ms|
00009cc0  67 5f 4e 42 5f 43 6f 6d  34 33 30 3e 20 69 6e 73  |g_NB_Com430> ins|
00009cd0  74 65 61 64 2e 0a 00 00  44 41 54 41 6c 00 00 00  |tead....DATAl...|
00009ce0  4e 65 77 73 42 61 73 65  5f 45 78 61 6d 69 6e 65  |NewsBase_Examine|
00009cf0  56 61 63 61 74 69 6f 6e  20 28 34 36 30 29 0a 54  |Vacation (460).T|
00009d00  68 69 73 20 63 6f 6d 6d  61 6e 64 20 69 73 20 6f  |his command is o|
00009d10  62 73 6f 6c 65 74 65 20  2d 20 75 73 65 20 3c 43  |bsolete - use <C|
00009d20  6f 6d 6d 61 6e 64 20 34  33 30 3d 3e 4d 73 67 5f  |ommand 430=>Msg_|
00009d30  4e 42 5f 43 6f 6d 34 33  30 3e 20 69 6e 73 74 65  |NB_Com430> inste|
00009d40  61 64 2e 0a 44 41 54 41  43 03 00 00 4e 65 77 73  |ad..DATAC...News|
00009d50  42 61 73 65 5f 52 65 45  64 69 74 20 28 38 30 30  |Base_ReEdit (800|
00009d60  29 0a 2b 32 34 09 66 69  6c 65 20 74 79 70 65 20  |).+24.file type |
00009d70  28 30 3d 6d 61 69 6c 2c  20 31 3d 6e 65 77 73 29  |(0=mail, 1=news)|
00009d80  0a 2b 32 38 09 72 65 66  65 72 65 6e 63 65 20 6e  |.+28.reference n|
00009d90  75 6d 62 65 72 0a 2b 33  32 09 66 69 6c 65 6e 61  |umber.+32.filena|
00009da0  6d 65 20 74 6f 20 72 65  2d 65 64 69 74 0a 0a 54  |me to re-edit..T|
00009db0  68 69 73 20 6d 65 73 73  61 67 65 20 73 68 6f 75  |his message shou|
00009dc0  6c 64 20 62 65 20 62 72  6f 61 64 63 61 73 74 20  |ld be broadcast |
00009dd0  62 79 20 61 20 71 75 65  75 65 20 63 6f 6e 74 72  |by a queue contr|
00009de0  6f 6c 20 70 72 6f 67 72  61 6d 2c 20 77 68 65 6e  |ol program, when|
00009df0  20 74 68 65 20 75 73 65  72 20 69 6e 64 69 63 61  | the user indica|
00009e00  74 65 73 20 74 68 65 79  20 77 69 73 68 20 74 6f  |tes they wish to|
00009e10  20 72 65 2d 65 64 69 74  20 61 6e 20 61 6c 72 65  | re-edit an alre|
00009e20  61 64 79 2d 71 75 65 75  65 64 20 66 69 6c 65 2e  |ady-queued file.|
00009e30  20 0a 0a 54 68 65 20 72  65 66 65 72 65 6e 63 65  | ..The reference|
00009e40  20 6e 75 6d 62 65 72 20  69 73 20 67 65 6e 65 72  | number is gener|
00009e50  61 74 65 64 20 62 79 20  74 68 65 20 71 75 65 75  |ated by the queu|
00009e60  65 20 63 6f 6e 74 72 6f  6c 20 70 72 6f 67 72 61  |e control progra|
00009e70  6d 2c 20 61 6e 64 20 77  69 6c 6c 20 62 65 20 72  |m, and will be r|
00009e80  65 74 75 72 6e 65 64 20  62 79 20 61 6e 79 20 4e  |eturned by any N|
00009e90  65 77 73 62 61 73 65 5f  52 65 70 6c 79 20 6d 65  |ewsbase_Reply me|
00009ea0  73 73 61 67 65 20 72 65  71 75 69 72 69 6e 67 20  |ssage requiring |
00009eb0  66 75 72 74 68 65 72 20  61 63 74 69 6f 6e 20 28  |further action (|
00009ec0  73 75 63 68 20 61 73 20  64 65 6c 65 74 69 6e 67  |such as deleting|
00009ed0  20 74 68 65 20 6f 72 69  67 69 6e 61 6c 20 71 75  | the original qu|
00009ee0  65 75 65 20 65 6e 74 72  79 29 2e 20 54 68 69 73  |eue entry). This|
00009ef0  20 69 73 20 69 6e 74 65  6e 64 65 64 20 74 6f 20  | is intended to |
00009f00  61 69 64 20 75 73 65 20  77 69 74 68 20 6d 75 6c  |aid use with mul|
00009f10  74 69 70 6c 65 20 72 65  2d 65 64 69 74 20 73 65  |tiple re-edit se|
00009f20  73 73 69 6f 6e 73 2e 0a  0a 4e 6f 74 65 20 74 68  |ssions...Note th|
00009f30  61 74 20 77 68 69 6c 65  20 61 20 72 65 2d 65 64  |at while a re-ed|
00009f40  69 74 20 73 65 73 73 69  6f 6e 20 69 73 20 69 6e  |it session is in|
00009f50  20 70 72 6f 67 72 65 73  73 2c 20 74 68 65 20 6d  | progress, the m|
00009f60  65 73 73 61 67 65 20 73  68 6f 75 6c 64 20 62 65  |essage should be|
00009f70  20 6c 6f 63 6b 65 64 20  69 6e 20 73 6f 6d 65 20  | locked in some |
00009f80  77 61 79 20 74 6f 20 70  72 65 76 65 6e 74 20 69  |way to prevent i|
00009f90  74 20 66 72 6f 6d 20 62  65 69 6e 67 20 73 65 6e  |t from being sen|
00009fa0  74 2e 20 46 6f 72 20 6b  61 39 71 2c 20 61 20 66  |t. For ka9q, a f|
00009fb0  69 6c 65 20 63 6f 75 6c  64 20 62 65 20 63 72 65  |ile could be cre|
00009fc0  61 74 65 64 20 69 6e 20  74 68 65 20 22 6c 6f 63  |ated in the "loc|
00009fd0  6b 22 20 64 69 72 65 63  74 6f 72 79 2e 20 4f 74  |k" directory. Ot|
00009fe0  68 65 72 20 6d 65 74 68  6f 64 73 20 6d 61 79 20  |her methods may |
00009ff0  62 65 20 6e 65 65 64 65  64 20 66 6f 72 20 6f 74  |be needed for ot|
0000a000  68 65 72 20 74 72 61 6e  73 70 6f 72 74 20 74 79  |her transport ty|
0000a010  70 65 73 2e 0a 0a 4e 6f  74 20 75 73 65 64 20 61  |pes...Not used a|
0000a020  74 20 70 72 65 73 65 6e  74 20 2d 20 6d 61 79 20  |t present - may |
0000a030  62 65 20 64 69 73 63 61  72 64 65 64 2c 20 61 73  |be discarded, as|
0000a040  20 6d 6f 72 65 20 63 6f  6d 70 6c 69 63 61 74 65  | more complicate|
0000a050  64 20 74 68 61 6e 20 6e  65 63 65 73 73 61 72 79  |d than necessary|
0000a060  20 28 73 65 65 2c 20 65  67 2c 20 21 51 65 64 69  | (see, eg, !Qedi|
0000a070  74 20 66 6f 72 20 73 69  6d 70 6c 65 72 20 6d 65  |t for simpler me|
0000a080  74 68 6f 64 29 2e 0a 00  44 41 54 41 0d 01 00 00  |thod)...DATA....|
0000a090  4e 65 77 73 42 61 73 65  5f 43 6c 69 65 6e 74 50  |NewsBase_ClientP|
0000a0a0  72 65 73 65 6e 74 20 28  39 30 30 29 0a 6e 6f 20  |resent (900).no |
0000a0b0  65 78 74 72 61 20 64 61  74 61 0a 0a 54 68 69 73  |extra data..This|
0000a0c0  20 69 73 20 73 65 6e 74  20 62 79 20 61 20 63 6c  | is sent by a cl|
0000a0d0  69 65 6e 74 20 69 6e 20  72 65 70 6c 79 20 74 6f  |ient in reply to|
0000a0e0  20 61 20 3c 4e 65 77 73  42 61 73 65 5f 52 65 70  | a <NewsBase_Rep|
0000a0f0  6c 79 20 43 6c 69 65 6e  74 50 72 65 73 65 6e 74  |ly ClientPresent|
0000a100  3d 3e 4d 73 67 5f 4e 42  5f 52 65 70 39 30 30 3e  |=>Msg_NB_Rep900>|
0000a110  20 6d 65 73 73 61 67 65  20 2d 20 62 72 6f 61 64  | message - broad|
0000a120  63 61 73 74 20 62 79 20  6e 65 77 73 62 61 73 65  |cast by newsbase|
0000a130  20 70 72 69 6f 72 20 74  6f 20 73 74 61 72 74 69  | prior to starti|
0000a140  6e 67 20 61 20 6e 65 77  73 72 65 61 64 65 72 2e  |ng a newsreader.|
0000a150  0a 0a 54 68 69 73 20 73  68 6f 75 6c 64 20 62 65  |..This should be|
0000a160  20 73 65 6e 74 20 69 66  20 79 6f 75 20 77 69 73  | sent if you wis|
0000a170  68 20 74 6f 20 70 72 65  76 65 6e 74 20 74 68 65  |h to prevent the|
0000a180  20 63 6c 69 65 6e 74 20  66 72 6f 6d 20 6c 6f 61  | client from loa|
0000a190  64 69 6e 67 2e 00 00 00  44 41 54 41 67 01 00 00  |ding....DATAg...|
0000a1a0  4e 65 77 73 42 61 73 65  5f 53 74 61 72 74 75 70  |NewsBase_Startup|
0000a1b0  52 65 70 6c 79 20 28 30  29 0a 2b 32 34 09 61 63  |Reply (0).+24.ac|
0000a1c0  74 75 61 6c 20 4e 65 77  73 42 61 73 65 20 76 65  |tual NewsBase ve|
0000a1d0  72 73 69 6f 6e 0a 2b 32  38 09 3c 66 6c 61 67 73  |rsion.+28.<flags|
0000a1e0  3d 3e 2e 66 6c 61 67 73  3e 0a 0a 54 68 69 73 20  |=>.flags>..This |
0000a1f0  69 73 20 72 65 74 75 72  6e 65 64 20 62 79 20 4e  |is returned by N|
0000a200  65 77 73 42 61 73 65 20  74 6f 20 69 6e 64 69 63  |ewsBase to indic|
0000a210  61 74 65 20 74 68 61 74  20 69 74 20 69 73 20 70  |ate that it is p|
0000a220  72 65 73 65 6e 74 2e 20  4e 65 77 73 42 61 73 65  |resent. NewsBase|
0000a230  20 77 69 6c 6c 20 61 6c  73 6f 20 62 72 6f 61 64  | will also broad|
0000a240  63 61 73 74 20 74 68 69  73 20 6d 65 73 73 61 67  |cast this messag|
0000a250  65 20 61 75 74 6f 6d 61  74 69 63 61 6c 6c 79 20  |e automatically |
0000a260  6f 6e 20 73 74 61 72 74  75 70 2e 0a 23 53 75 62  |on startup..#Sub|
0000a270  70 61 67 65 20 66 6c 61  67 73 0a 53 74 61 72 74  |page flags.Start|
0000a280  75 70 20 72 65 70 6c 79  0a 42 69 74 09 4d 65 61  |up reply.Bit.Mea|
0000a290  6e 69 6e 67 0a 23 4c 69  6e 65 0a 30 2d 37 09 70  |ning.#Line.0-7.p|
0000a2a0  61 74 63 68 20 6c 65 76  65 6c 0a 38 2d 31 35 09  |atch level.8-15.|
0000a2b0  70 72 65 2d 72 65 6c 65  61 73 65 20 6e 75 6d 62  |pre-release numb|
0000a2c0  65 72 20 28 31 30 30 20  66 6f 72 20 73 74 61 6e  |er (100 for stan|
0000a2d0  64 61 72 64 20 72 65 6c  65 61 73 65 2c 20 5c 3c  |dard release, \<|
0000a2e0  20 31 30 30 20 66 6f 72  20 64 65 76 65 6c 6f 70  | 100 for develop|
0000a2f0  6d 65 6e 74 20 76 65 72  73 69 6f 6e 73 29 0a 00  |ment versions)..|
0000a300  44 41 54 41 af 00 00 00  4e 65 77 73 42 61 73 65  |DATA....NewsBase|
0000a310  5f 53 68 75 74 64 6f 77  6e 20 28 31 30 29 0a 2b  |_Shutdown (10).+|
0000a320  33 32 09 64 65 73 63 72  69 70 74 69 76 65 20 73  |32.descriptive s|
0000a330  74 72 69 6e 67 0a 0a 4e  65 77 73 42 61 73 65 20  |tring..NewsBase |
0000a340  61 6c 73 6f 20 62 72 6f  61 64 63 61 73 74 73 20  |also broadcasts |
0000a350  74 68 69 73 20 6d 65 73  73 61 67 65 20 69 66 20  |this message if |
0000a360  69 74 20 73 68 75 74 73  20 64 6f 77 6e 20 64 75  |it shuts down du|
0000a370  65 20 74 6f 20 61 6e 20  65 72 72 6f 72 20 6f 72  |e to an error or|
0000a380  20 75 73 65 72 20 72 65  71 75 65 73 74 20 28 69  | user request (i|
0000a390  65 20 51 75 69 74 20 66  72 6f 6d 20 74 68 65 20  |e Quit from the |
0000a3a0  69 63 6f 6e 62 61 72 20  6d 65 6e 75 29 2e 0a 00  |iconbar menu)...|
0000a3b0  44 41 54 41 34 00 00 00  4e 65 77 73 42 61 73 65  |DATA4...NewsBase|
0000a3c0  5f 53 65 74 55 73 65 72  20 28 32 30 29 0a 2b 33  |_SetUser (20).+3|
0000a3d0  32 09 43 75 72 72 65 6e  74 20 75 73 65 72 20 6e  |2.Current user n|
0000a3e0  61 6d 65 0a 44 41 54 41  36 00 00 00 4e 65 77 73  |ame.DATA6...News|
0000a3f0  42 61 73 65 5f 53 69 74  65 49 6e 66 6f 20 28 33  |Base_SiteInfo (3|
0000a400  30 29 0a 2b 33 32 09 69  6e 66 6f 72 6d 61 74 69  |0).+32.informati|
0000a410  6f 6e 20 73 74 72 69 6e  67 0a 00 00 44 41 54 41  |on string...DATA|
0000a420  a0 03 00 00 4e 65 77 73  42 61 73 65 5f 47 72 6f  |....NewsBase_Gro|
0000a430  75 70 4c 69 73 74 20 28  31 30 30 29 0a 46 6f 72  |upList (100).For|
0000a440  20 64 61 74 61 62 61 73  65 20 3a 0a 23 49 6e 64  | database :.#Ind|
0000a450  65 6e 74 20 32 0a 2b 32  34 09 6c 6f 77 65 73 74  |ent 2.+24.lowest|
0000a460  20 6e 75 6d 62 65 72 65  64 20 61 72 74 69 63 6c  | numbered articl|
0000a470  65 20 69 6e 20 67 72 6f  75 70 0a 2b 32 38 09 68  |e in group.+28.h|
0000a480  69 67 68 65 73 74 20 6e  75 6d 62 65 72 65 64 20  |ighest numbered |
0000a490  61 72 74 69 63 6c 65 20  69 6e 20 67 72 6f 75 70  |article in group|
0000a4a0  0a 2b 33 32 09 65 73 74  69 6d 61 74 65 64 20 6e  |.+32.estimated n|
0000a4b0  75 6d 62 65 72 20 6f 66  20 61 72 74 69 63 6c 65  |umber of article|
0000a4c0  73 20 69 6e 20 67 72 6f  75 70 0a 2b 33 36 09 6e  |s in group.+36.n|
0000a4d0  65 77 73 20 67 72 6f 75  70 20 6e 61 6d 65 0a 2b  |ews group name.+|
0000a4e0  33 36 2b 6e 09 3c 65 78  74 72 61 20 69 6e 66 6f  |36+n.<extra info|
0000a4f0  72 6d 61 74 69 6f 6e 20  73 74 72 69 6e 67 3d 3e  |rmation string=>|
0000a500  2e 65 78 74 72 61 3e 0a  0a 52 65 74 75 72 6e 73  |.extra>..Returns|
0000a510  20 69 6e 20 61 20 73 74  72 65 61 6d 20 6f 66 20  | in a stream of |
0000a520  6d 65 73 73 61 67 65 73  2c 20 6f 6e 65 20 70 65  |messages, one pe|
0000a530  72 20 61 72 74 69 63 6c  65 2e 20 45 6e 64 20 6f  |r article. End o|
0000a540  66 20 6c 69 73 74 20 69  73 20 73 69 67 6e 61 6c  |f list is signal|
0000a550  6c 65 64 20 62 79 20 61  20 6e 75 6c 6c 20 73 74  |led by a null st|
0000a560  72 69 6e 67 20 61 6e 64  20 6c 6f 77 2f 68 69 67  |ring and low/hig|
0000a570  68 20 61 72 74 69 63 6c  65 73 20 73 65 74 20 74  |h articles set t|
0000a580  6f 20 7a 65 72 6f 2e 20  4f 74 68 65 72 77 69 73  |o zero. Otherwis|
0000a590  65 2c 20 61 20 66 69 72  73 74 20 61 72 74 69 63  |e, a first artic|
0000a5a0  6c 65 20 6e 75 6d 62 65  72 20 6f 66 20 7a 65 72  |le number of zer|
0000a5b0  6f 20 69 6e 64 69 63 61  74 65 73 20 74 68 61 74  |o indicates that|
0000a5c0  20 6e 6f 20 61 72 74 69  63 6c 65 73 20 61 72 65  | no articles are|
0000a5d0  20 70 72 65 73 65 6e 74  20 69 6e 20 74 68 65 20  | present in the |
0000a5e0  67 72 6f 75 70 2e 0a 23  49 6e 64 65 6e 74 0a 0a  |group..#Indent..|
0000a5f0  46 6f 72 20 6e 65 77 73  66 65 65 64 20 3a 0a 23  |For newsfeed :.#|
0000a600  49 6e 64 65 6e 74 20 32  0a 2b 32 34 09 72 65 73  |Indent 2.+24.res|
0000a610  65 72 76 65 64 20 28 6d  75 73 74 20 62 65 20 30  |erved (must be 0|
0000a620  29 0a 2b 32 38 09 72 65  73 65 72 76 65 64 20 28  |).+28.reserved (|
0000a630  6d 75 73 74 20 62 65 20  30 29 0a 2b 33 32 09 72  |must be 0).+32.r|
0000a640  65 73 65 72 76 65 64 20  28 6d 75 73 74 20 62 65  |eserved (must be|
0000a650  20 30 29 0a 2b 33 36 09  6e 65 77 73 67 72 6f 75  | 0).+36.newsgrou|
0000a660  70 20 6e 61 6d 65 0a 0a  52 65 74 75 72 6e 73 20  |p name..Returns |
0000a670  69 6e 20 61 20 73 74 72  65 61 6d 20 6f 66 20 6d  |in a stream of m|
0000a680  65 73 73 61 67 65 73 2c  20 6c 69 73 74 69 6e 67  |essages, listing|
0000a690  20 65 61 63 68 20 6f 66  20 74 68 65 20 6e 65 77  | each of the new|
0000a6a0  73 67 72 6f 75 70 73 2e  0a 23 53 75 62 70 61 67  |sgroups..#Subpag|
0000a6b0  65 20 65 78 74 72 61 0a  47 72 6f 75 70 4c 69 73  |e extra.GroupLis|
0000a6c0  74 20 65 78 74 72 61 20  69 6e 66 6f 72 6d 61 74  |t extra informat|
0000a6d0  69 6f 6e 0a 54 68 69 73  20 69 73 20 61 20 73 70  |ion.This is a sp|
0000a6e0  61 63 65 20 73 65 70 65  72 61 74 65 64 20 6c 69  |ace seperated li|
0000a6f0  73 74 20 6f 66 20 69 6e  66 6f 72 6d 61 74 69 6f  |st of informatio|
0000a700  6e 20 61 62 6f 75 74 20  74 68 65 20 67 72 6f 75  |n about the grou|
0000a710  70 2e 20 54 68 65 20 66  6f 6c 6c 6f 77 69 6e 67  |p. The following|
0000a720  20 64 61 74 61 20 69 73  20 67 69 76 65 6e 20 3a  | data is given :|
0000a730  0a 43 6f 64 65 09 4d 65  61 6e 69 6e 67 0a 23 4c  |.Code.Meaning.#L|
0000a740  69 6e 65 0a 4c 78 09 78  20 3d 20 30 2c 20 61 72  |ine.Lx.x = 0, ar|
0000a750  74 69 63 6c 65 20 64 65  6c 65 74 69 6f 6e 20 61  |ticle deletion a|
0000a760  6c 6c 6f 77 65 64 0a 09  78 20 3d 20 31 2c 20 61  |llowed..x = 1, a|
0000a770  72 74 69 63 6c 65 20 64  65 6c 65 74 69 6f 6e 20  |rticle deletion |
0000a780  64 69 73 61 6c 6c 6f 77  65 64 0a 0a 54 78 31 32  |disallowed..Tx12|
0000a790  09 78 31 32 20 3d 20 63  72 65 61 74 69 6f 6e 20  |.x12 = creation |
0000a7a0  74 69 6d 65 20 69 6e 20  66 6f 72 6d 61 74 20 43  |time in format C|
0000a7b0  65 59 72 4d 6e 44 79 32  34 4d 69 0a 44 41 54 41  |eYrMnDy24Mi.DATA|
0000a7c0  da 00 00 00 4e 65 77 73  42 61 73 65 5f 4e 65 77  |....NewsBase_New|
0000a7d0  47 72 6f 75 70 4c 69 73  74 20 28 31 31 30 29 0a  |GroupList (110).|
0000a7e0  2b 32 34 09 64 61 74 65  20 67 72 6f 75 70 20 62  |+24.date group b|
0000a7f0  65 63 61 6d 65 20 61 76  61 69 6c 61 62 6c 65 0a  |ecame available.|
0000a800  2b 32 38 09 74 69 6d 65  20 67 72 6f 75 70 20 62  |+28.time group b|
0000a810  65 63 61 6d 65 20 61 76  61 69 6c 61 62 6c 65 0a  |ecame available.|
0000a820  2b 33 32 09 6e 65 77 73  20 67 72 6f 75 70 20 6e  |+32.news group n|
0000a830  61 6d 65 0a 0a 52 65 74  75 72 6e 73 20 69 6e 20  |ame..Returns in |
0000a840  61 20 73 74 72 65 61 6d  20 6f 66 20 6d 65 73 73  |a stream of mess|
0000a850  61 67 65 73 2c 20 6f 6e  65 20 70 65 72 20 61 72  |ages, one per ar|
0000a860  74 69 63 6c 65 2e 20 45  6e 64 20 6f 66 20 6c 69  |ticle. End of li|
0000a870  73 74 20 69 73 20 73 69  67 6e 61 6c 6c 65 64 20  |st is signalled |
0000a880  62 79 20 61 20 6e 75 6c  6c 20 67 72 6f 75 70 20  |by a null group |
0000a890  6e 61 6d 65 2e 0a 00 00  44 41 54 41 62 01 00 00  |name....DATAb...|
0000a8a0  4e 65 77 73 42 61 73 65  5f 41 72 74 4c 69 73 74  |NewsBase_ArtList|
0000a8b0  20 28 32 30 30 29 0a 2b  32 34 09 61 72 74 69 63  | (200).+24.artic|
0000a8c0  6c 65 20 6e 75 6d 62 65  72 0a 2b 32 38 09 61 72  |le number.+28.ar|
0000a8d0  74 69 63 6c 65 20 73 69  7a 65 20 69 6e 20 62 79  |ticle size in by|
0000a8e0  74 65 73 2c 20 30 20 69  66 20 75 6e 6b 6e 6f 77  |tes, 0 if unknow|
0000a8f0  6e 2c 20 6f 72 20 2d 31  20 69 66 20 6f 6e 6c 79  |n, or -1 if only|
0000a900  20 68 65 61 64 65 72 20  70 72 65 73 65 6e 74 0a  | header present.|
0000a910  2b 33 32 09 46 72 6f 6d  3a 20 66 69 65 6c 64 0a  |+32.From: field.|
0000a920  2b 33 32 2b 6e 09 53 75  62 6a 65 63 74 3a 20 66  |+32+n.Subject: f|
0000a930  69 65 6c 64 0a 2b 33 32  2b 6d 09 4d 65 73 73 61  |ield.+32+m.Messa|
0000a940  67 65 2d 49 44 3a 20 66  69 65 6c 64 20 28 74 72  |ge-ID: field (tr|
0000a950  75 6e 63 61 74 65 64 20  74 6f 20 37 30 20 63 68  |uncated to 70 ch|
0000a960  61 72 61 63 74 65 72 73  29 0a 2b 33 32 2b 6f 09  |aracters).+32+o.|
0000a970  44 61 74 65 3a 20 66 69  65 6c 64 20 28 74 72 75  |Date: field (tru|
0000a980  6e 63 61 74 65 64 20 74  6f 20 34 35 20 63 68 61  |ncated to 45 cha|
0000a990  72 61 63 74 65 72 73 29  0a 0a 52 65 74 75 72 6e  |racters)..Return|
0000a9a0  73 20 69 6e 20 61 20 73  74 72 65 61 6d 20 6f 66  |s in a stream of|
0000a9b0  20 6d 65 73 73 61 67 65  73 2c 20 6f 6e 65 20 70  | messages, one p|
0000a9c0  65 72 20 61 72 74 69 63  6c 65 2e 20 45 6e 64 20  |er article. End |
0000a9d0  6f 66 20 6c 69 73 74 20  69 73 20 73 69 67 6e 61  |of list is signa|
0000a9e0  6c 6c 65 64 20 62 79 20  61 72 74 69 63 6c 65 20  |lled by article |
0000a9f0  6e 75 6d 62 65 72 20 30  2e 0a 00 00 44 41 54 41  |number 0....DATA|
0000aa00  5b 01 00 00 4e 65 77 73  42 61 73 65 5f 41 72 74  |[...NewsBase_Art|
0000aa10  49 6e 66 6f 20 28 32 31  30 29 0a 2b 32 34 09 61  |Info (210).+24.a|
0000aa20  72 74 69 63 6c 65 20 6e  75 6d 62 65 72 0a 2b 32  |rticle number.+2|
0000aa30  38 09 3c 64 61 74 61 20  74 79 70 65 3d 3e 2e 74  |8.<data type=>.t|
0000aa40  79 70 65 73 3e 0a 2b 33  32 09 68 65 61 64 65 72  |ypes>.+32.header|
0000aa50  20 64 61 74 61 0a 0a 52  65 74 75 72 6e 73 20 69  | data..Returns i|
0000aa60  6e 20 61 20 73 74 72 65  61 6d 20 6f 66 20 6d 65  |n a stream of me|
0000aa70  73 73 61 67 65 73 2c 20  6f 6e 65 20 70 65 72 20  |ssages, one per |
0000aa80  61 72 74 69 63 6c 65 2e  20 45 6e 64 20 6f 66 20  |article. End of |
0000aa90  6c 69 73 74 20 69 73 20  73 69 67 6e 61 6c 6c 65  |list is signalle|
0000aaa0  64 20 62 79 20 61 72 74  69 63 6c 65 20 6e 75 6d  |d by article num|
0000aab0  62 65 72 20 30 2e 0a 23  53 75 62 70 61 67 65 20  |ber 0..#Subpage |
0000aac0  74 79 70 65 73 0a 41 72  74 49 6e 66 6f 20 74 79  |types.ArtInfo ty|
0000aad0  70 65 73 0a 54 79 70 65  09 48 65 61 64 65 72 20  |pes.Type.Header |
0000aae0  69 6e 66 6f 20 72 65 74  75 72 6e 65 64 0a 23 4c  |info returned.#L|
0000aaf0  69 6e 65 0a 30 09 72 65  66 65 72 65 6e 63 65 20  |ine.0.reference |
0000ab00  68 65 61 64 65 72 0a 31  09 64 61 74 65 20 68 65  |header.1.date he|
0000ab10  61 64 65 72 0a 32 09 66  72 6f 6d 20 68 65 61 64  |ader.2.from head|
0000ab20  65 72 0a 33 09 73 75 62  6a 65 63 74 20 68 65 61  |er.3.subject hea|
0000ab30  64 65 72 0a 34 09 6d 65  73 73 61 67 65 2d 69 64  |der.4.message-id|
0000ab40  20 68 65 61 64 65 72 0a  35 09 78 2d 72 65 66 20  | header.5.x-ref |
0000ab50  68 65 61 64 65 72 0a 00  44 41 54 41 36 01 00 00  |header..DATA6...|
0000ab60  4e 65 77 73 42 61 73 65  5f 47 65 74 41 72 74 69  |NewsBase_GetArti|
0000ab70  63 6c 65 20 28 32 32 30  29 0a 2b 32 34 09 61 72  |cle (220).+24.ar|
0000ab80  74 69 63 6c 65 20 6e 75  6d 62 65 72 0a 2b 32 38  |ticle number.+28|
0000ab90  09 61 72 74 69 63 6c 65  20 73 69 7a 65 2c 20 6f  |.article size, o|
0000aba0  72 20 2d 31 20 69 66 20  61 72 74 69 63 6c 65 20  |r -1 if article |
0000abb0  69 73 20 6f 6e 6c 79 20  70 72 65 73 65 6e 74 20  |is only present |
0000abc0  69 6e 20 68 65 61 64 65  72 20 66 6f 72 6d 0a 2b  |in header form.+|
0000abd0  33 32 09 66 69 6c 65 6e  61 6d 65 20 28 63 6f 6e  |32.filename (con|
0000abe0  74 72 6f 6c 20 74 65 72  6d 69 6e 61 74 65 64 29  |trol terminated)|
0000abf0  0a 2b 33 32 2b 6e 09 61  72 74 69 63 6c 65 20 66  |.+32+n.article f|
0000ac00  6c 61 67 20 73 74 72 69  6e 67 20 28 63 6f 6e 74  |lag string (cont|
0000ac10  72 6f 6c 20 74 65 72 6d  69 6e 61 74 65 64 29 0a  |rol terminated).|
0000ac20  0a 43 75 72 72 65 6e 74  6c 79 2c 20 74 68 65 20  |.Currently, the |
0000ac30  6c 6f 63 6b 65 64 20 73  74 61 74 75 73 20 69 73  |locked status is|
0000ac40  20 74 68 65 20 6f 6e 6c  79 20 66 6c 61 67 20 72  | the only flag r|
0000ac50  65 74 75 72 6e 65 64 20  2d 20 65 69 74 68 65 72  |eturned - either|
0000ac60  20 22 4c 30 22 20 6f 72  20 22 4c 31 22 20 74 6f  | "L0" or "L1" to|
0000ac70  20 69 6e 64 69 63 61 74  65 20 75 6e 6c 6f 63 6b  | indicate unlock|
0000ac80  65 64 20 6f 72 20 6c 6f  63 6b 65 64 2e 0a 00 00  |ed or locked....|
0000ac90  44 41 54 41 ce 00 00 00  4e 65 77 73 42 61 73 65  |DATA....NewsBase|
0000aca0  5f 55 73 65 72 4c 69 73  74 20 28 34 30 30 29 0a  |_UserList (400).|
0000acb0  2b 32 34 09 75 73 65 72  27 73 20 67 72 6f 75 70  |+24.user's group|
0000acc0  20 6e 75 6d 62 65 72 0a  2b 32 38 09 3c 66 6c 61  | number.+28.<fla|
0000acd0  67 73 3d 3e 4d 73 67 5f  4e 42 5f 52 65 70 34 30  |gs=>Msg_NB_Rep40|
0000ace0  30 66 6c 61 67 73 3e 0a  2b 33 32 09 75 73 65 72  |0flags>.+32.user|
0000acf0  6e 61 6d 65 0a 2b 33 32  2b 6e 09 68 6f 6d 65 20  |name.+32+n.home |
0000ad00  64 69 72 65 63 74 6f 72  79 0a 0a 52 65 74 75 72  |directory..Retur|
0000ad10  6e 65 64 20 69 6e 20 61  20 73 74 72 65 61 6d 20  |ned in a stream |
0000ad20  6f 66 20 6d 65 73 73 61  67 65 73 2c 20 6f 6e 65  |of messages, one|
0000ad30  20 70 65 72 20 75 73 65  72 2e 20 45 6e 64 20 6f  | per user. End o|
0000ad40  66 20 6c 69 73 74 20 69  6e 64 69 63 61 74 65 64  |f list indicated|
0000ad50  20 62 79 20 30 2c 30 2c  22 22 2c 22 22 0a 00 00  | by 0,0,"",""...|
0000ad60  44 41 54 41 90 00 00 00  4e 65 77 73 42 61 73 65  |DATA....NewsBase|
0000ad70  5f 47 65 74 55 73 65 72  49 6e 66 6f 20 28 34 34  |_GetUserInfo (44|
0000ad80  30 29 0a 2b 32 34 09 3c  69 74 65 6d 20 74 79 70  |0).+24.<item typ|
0000ad90  65 3d 3e 4d 73 67 5f 4e  42 5f 43 6f 6d 34 33 30  |e=>Msg_NB_Com430|
0000ada0  69 74 65 6d 73 3e 0a 2b  32 38 09 3c 66 6c 61 67  |items>.+28.<flag|
0000adb0  73 3d 3e 4d 73 67 5f 4e  42 5f 43 6f 6d 34 33 30  |s=>Msg_NB_Com430|
0000adc0  66 6c 61 67 73 3e 0a 2b  33 32 09 75 73 65 72 6e  |flags>.+32.usern|
0000add0  61 6d 65 0a 2b 33 32 2b  6e 09 69 6e 66 6f 72 6d  |ame.+32+n.inform|
0000ade0  61 74 69 6f 6e 20 72 65  71 75 65 73 74 65 64 0a  |ation requested.|
0000adf0  44 41 54 41 4a 00 00 00  4e 65 77 73 42 61 73 65  |DATAJ...NewsBase|
0000ae00  5f 45 78 61 6d 69 6e 65  46 6f 72 77 61 72 64 69  |_ExamineForwardi|
0000ae10  6e 67 20 28 34 35 30 29  0a 54 68 69 73 20 6d 65  |ng (450).This me|
0000ae20  73 73 61 67 65 20 77 69  6c 6c 20 6e 65 76 65 72  |ssage will never|
0000ae30  20 62 65 20 73 65 6e 74  2e 0a 00 00 44 41 54 41  | be sent....DATA|
0000ae40  47 00 00 00 4e 65 77 73  42 61 73 65 5f 45 78 61  |G...NewsBase_Exa|
0000ae50  6d 69 6e 65 56 61 63 61  74 69 6f 6e 20 28 34 36  |mineVacation (46|
0000ae60  30 29 0a 54 68 69 73 20  6d 65 73 73 61 67 65 20  |0).This message |
0000ae70  77 69 6c 6c 20 6e 65 76  65 72 20 62 65 20 73 65  |will never be se|
0000ae80  6e 74 2e 00 44 41 54 41  22 01 00 00 4e 65 77 73  |nt..DATA"...News|
0000ae90  42 61 73 65 5f 43 6c 69  65 6e 74 50 72 65 73 65  |Base_ClientPrese|
0000aea0  6e 74 20 28 39 30 30 29  0a 6e 6f 20 65 78 74 72  |nt (900).no extr|
0000aeb0  61 20 64 61 74 61 0a 0a  54 68 69 73 20 4e 65 77  |a data..This New|
0000aec0  73 62 61 73 65 5f 52 65  70 6c 79 20 6d 65 73 73  |sbase_Reply mess|
0000aed0  61 67 65 20 69 73 20 62  72 6f 61 64 63 61 73 74  |age is broadcast|
0000aee0  20 62 79 20 6e 65 77 73  62 61 73 65 20 62 65 66  | by newsbase bef|
0000aef0  6f 72 65 20 61 74 74 65  6d 70 74 69 6e 67 20 74  |ore attempting t|
0000af00  6f 20 73 74 61 72 74 20  61 20 6e 65 77 20 63 6c  |o start a new cl|
0000af10  69 65 6e 74 20 61 70 70  6c 69 63 61 74 69 6f 6e  |ient application|
0000af20  2e 20 49 66 20 61 20 63  6c 69 65 6e 74 20 69 73  |. If a client is|
0000af30  20 6c 6f 61 64 65 64 20  61 6e 64 20 77 69 73 68  | loaded and wish|
0000af40  65 73 20 74 6f 20 70 72  65 76 65 6e 74 20 61 6e  |es to prevent an|
0000af50  6f 74 68 65 72 20 66 72  6f 6d 20 62 65 69 6e 67  |other from being|
0000af60  20 73 74 61 72 74 65 64  2c 20 69 74 20 73 68 6f  | started, it sho|
0000af70  75 6c 64 20 72 65 70 6c  79 20 77 69 74 68 20 3c  |uld reply with <|
0000af80  4e 65 77 73 42 61 73 65  5f 43 6f 6d 6d 61 6e 64  |NewsBase_Command|
0000af90  20 39 30 30 3d 3e 4d 73  67 5f 4e 42 5f 43 6f 6d  | 900=>Msg_NB_Com|
0000afa0  39 30 30 3e 2e 0a 00 00  44 41 54 41 4e 00 00 00  |900>....DATAN...|
0000afb0  4e 65 77 73 42 61 73 65  5f 43 72 65 61 74 65 46  |NewsBase_CreateF|
0000afc0  6f 6c 64 65 72 20 28 31  35 30 29 0a 2b 33 32 09  |older (150).+32.|
0000afd0  66 6f 6c 64 65 72 20 6e  61 6d 65 0a 0a 43 72 65  |folder name..Cre|
0000afe0  61 74 65 73 20 61 6e 20  65 6d 70 74 79 20 66 6f  |ates an empty fo|
0000aff0  6c 64 65 72 2e 0a 00 00  44 41 54 41 5f 03 00 00  |lder....DATA_...|
0000b000  4e 65 77 73 42 61 73 65  5f 47 72 6f 75 70 4f 76  |NewsBase_GroupOv|
0000b010  65 72 76 69 65 77 20 28  32 39 30 29 0a 2b 32 34  |erview (290).+24|
0000b020  09 66 69 72 73 74 20 61  72 74 69 63 6c 65 20 6e  |.first article n|
0000b030  75 6d 62 65 72 20 28 30  3d 66 69 72 73 74 29 20  |umber (0=first) |
0000b040  7b 2f 7d 28 61 73 73 75  6d 65 64 20 30 29 7b 2f  |{/}(assumed 0){/|
0000b050  7d 0a 2b 32 38 09 6c 61  73 74 20 61 72 74 69 63  |}.+28.last artic|
0000b060  6c 65 20 6e 75 6d 62 65  72 20 28 30 3d 6c 61 73  |le number (0=las|
0000b070  74 29 20 7b 2f 7d 28 61  73 73 75 6d 65 64 20 30  |t) {/}(assumed 0|
0000b080  29 7b 2f 7d 0a 2b 33 32  09 67 72 6f 75 70 20 6e  |){/}.+32.group n|
0000b090  61 6d 65 0a 0a 52 65 74  75 72 6e 73 20 61 20 66  |ame..Returns a f|
0000b0a0  69 6c 65 6e 61 6d 65 20  66 6f 72 20 74 68 65 20  |ilename for the |
0000b0b0  67 72 6f 75 70 20 6f 76  65 72 76 69 65 77 20 69  |group overview i|
0000b0c0  6e 66 6f 72 6d 61 74 69  6f 6e 2e 20 54 68 69 73  |nformation. This|
0000b0d0  20 66 69 6c 65 20 63 6f  6e 74 61 69 6e 73 20 61  | file contains a|
0000b0e0  72 74 69 63 6c 65 20 68  65 61 64 65 72 20 69 6e  |rticle header in|
0000b0f0  66 6f 72 6d 61 74 69 6f  6e 20 69 6e 20 61 20 73  |formation in a s|
0000b100  74 61 6e 64 61 72 64 20  66 6f 72 6d 61 74 2c 20  |tandard format, |
0000b110  61 6e 64 20 63 61 6e 20  70 72 6f 76 69 64 65 20  |and can provide |
0000b120  61 20 66 61 73 74 65 72  20 77 61 79 20 6f 66 20  |a faster way of |
0000b130  6f 62 74 61 69 6e 69 6e  67 20 61 72 74 69 63 6c  |obtaining articl|
0000b140  65 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 20 74 68  |e information th|
0000b150  61 6e 20 74 68 65 20 77  69 6d 70 2d 6d 65 73 73  |an the wimp-mess|
0000b160  61 67 65 20 6c 69 73 74  73 20 66 72 6f 6d 20 63  |age lists from c|
0000b170  6f 6d 6d 61 6e 64 73 20  32 30 30 20 26 20 32 31  |ommands 200 & 21|
0000b180  30 2e 20 54 68 65 20 66  69 6c 65 6e 61 6d 65 20  |0. The filename |
0000b190  72 65 74 75 72 6e 65 64  20 63 61 6e 20 62 65 20  |returned can be |
0000b1a0  75 73 65 64 20 74 6f 20  64 69 72 65 63 74 6c 79  |used to directly|
0000b1b0  20 6c 6f 61 64 20 6f 72  20 63 6f 70 79 20 74 68  | load or copy th|
0000b1c0  65 20 64 61 74 61 2c 20  62 75 74 20 73 68 6f 75  |e data, but shou|
0000b1d0  6c 64 20 6e 6f 74 20 62  65 20 73 74 6f 72 65 64  |ld not be stored|
0000b1e0  20 61 63 72 6f 73 73 20  57 69 6d 70 5f 50 6f 6c  | across Wimp_Pol|
0000b1f0  6c 73 2c 20 61 73 20 69  74 20 6d 61 79 20 73 69  |ls, as it may si|
0000b200  6d 70 6c 79 20 62 65 20  61 20 73 63 72 61 70 20  |mply be a scrap |
0000b210  66 69 6c 65 2e 0a 0a 53  65 76 65 72 61 6c 20 70  |file...Several p|
0000b220  6f 6c 6c 73 20 6d 61 79  20 6f 63 63 75 72 20 62  |olls may occur b|
0000b230  65 74 77 65 65 6e 20 73  65 6e 64 69 6e 67 20 74  |etween sending t|
0000b240  68 69 73 20 6d 65 73 73  61 67 65 20 61 6e 64 20  |his message and |
0000b250  72 65 63 65 69 76 69 6e  67 20 74 68 65 20 72 65  |receiving the re|
0000b260  70 6c 79 20 28 69 6e 20  74 68 65 20 63 61 73 65  |ply (in the case|
0000b270  20 74 68 61 74 20 61 20  6e 65 77 20 6f 76 65 72  | that a new over|
0000b280  76 69 65 77 20 66 69 6c  65 20 68 61 73 20 74 6f  |view file has to|
0000b290  20 62 65 20 67 65 6e 65  72 61 74 65 64 29 2e 0a  | be generated)..|
0000b2a0  0a 49 66 20 66 69 72 73  74 2f 6c 61 73 74 20 61  |.If first/last a|
0000b2b0  72 74 69 63 6c 65 20 6e  75 6d 62 65 72 73 20 61  |rticle numbers a|
0000b2c0  72 65 20 73 75 70 70 6c  69 65 64 2c 20 74 68 65  |re supplied, the|
0000b2d0  6e 20 61 20 73 75 62 73  65 74 20 6f 76 65 72 76  |n a subset overv|
0000b2e0  69 65 77 20 66 69 6c 65  20 69 73 20 63 72 65 61  |iew file is crea|
0000b2f0  74 65 64 20 63 6f 6e 74  61 69 6e 69 6e 67 20 6f  |ted containing o|
0000b300  6e 6c 79 20 74 68 6f 73  65 20 61 72 74 69 63 6c  |nly those articl|
0000b310  65 20 6e 75 6d 62 65 72  73 2c 20 61 6e 64 20 74  |e numbers, and t|
0000b320  68 65 20 66 69 6c 65 6e  61 6d 65 20 72 65 74 75  |he filename retu|
0000b330  72 6e 65 64 20 69 73 20  74 65 6d 70 6f 72 61 72  |rned is temporar|
0000b340  79 20 28 6e 6f 74 20 79  65 74 20 73 75 70 70 6f  |y (not yet suppo|
0000b350  72 74 65 64 29 2e 0a 00  44 41 54 41 58 01 00 00  |rted)...DATAX...|
0000b360  4e 65 77 73 42 61 73 65  5f 53 65 74 52 65 74 75  |NewsBase_SetRetu|
0000b370  72 6e 50 61 74 68 20 28  33 32 30 29 0a 2b 33 32  |rnPath (320).+32|
0000b380  09 65 6e 76 65 6c 6f 70  65 20 27 46 72 6f 6d 27  |.envelope 'From'|
0000b390  20 61 64 64 72 65 73 73  2c 20 6f 72 20 6e 75 6c  | address, or nul|
0000b3a0  6c 20 74 6f 20 63 6c 65  61 72 0a 0a 54 68 65 20  |l to clear..The |
0000b3b0  45 6e 76 65 6c 6f 70 65  20 22 46 72 6f 6d 22 20  |Envelope "From" |
0000b3c0  61 64 64 72 65 73 73 20  6d 61 79 20 62 65 20 70  |address may be p|
0000b3d0  72 6f 76 69 64 65 64 20  73 68 6f 75 6c 64 20 74  |rovided should t|
0000b3e0  68 65 20 4e 65 77 73 62  61 73 65 2d 73 75 70 70  |he Newsbase-supp|
0000b3f0  6c 69 65 64 20 6f 6e 65  20 62 65 20 75 6e 73 75  |lied one be unsu|
0000b400  69 74 61 62 6c 65 20 28  65 67 2c 20 66 6f 72 20  |itable (eg, for |
0000b410  6d 61 69 6c 69 6e 67 20  6c 69 73 74 20 73 6f 66  |mailing list sof|
0000b420  74 77 61 72 65 29 2e 20  54 68 69 73 20 63 6f 6d  |tware). This com|
0000b430  6d 61 6e 64 20 6e 65 65  64 20 6f 6e 6c 79 20 62  |mand need only b|
0000b440  65 20 73 65 6e 74 20 6f  6e 63 65 20 74 6f 20 73  |e sent once to s|
0000b450  65 74 20 74 68 65 20 76  61 6c 75 65 20 66 6f 72  |et the value for|
0000b460  20 61 20 63 6c 69 65 6e  74 2c 20 61 6e 64 20 69  | a client, and i|
0000b470  74 20 77 69 6c 6c 20 62  65 20 72 65 6d 65 6d 62  |t will be rememb|
0000b480  65 72 65 64 20 66 6f 72  20 74 68 61 74 20 73 65  |ered for that se|
0000b490  73 73 69 6f 6e 20 75 6e  74 69 6c 20 61 6c 74 65  |ssion until alte|
0000b4a0  72 65 64 20 6f 72 20 63  6c 65 61 72 65 64 2e 0a  |red or cleared..|
0000b4b0  44 41 54 41 a8 00 00 00  4e 65 77 73 42 61 73 65  |DATA....NewsBase|
0000b4c0  5f 4c 69 73 74 54 72 61  6e 73 70 6f 72 74 73 20  |_ListTransports |
0000b4d0  28 35 30 30 29 0a 2b 32  34 09 3c 69 74 65 6d 20  |(500).+24.<item |
0000b4e0  74 6f 20 72 65 74 75 72  6e 3d 3e 4d 73 67 5f 4e  |to return=>Msg_N|
0000b4f0  42 5f 43 6f 6d 35 30 30  69 74 65 6d 73 3e 0a 2b  |B_Com500items>.+|
0000b500  32 38 09 72 65 73 65 72  76 65 64 20 28 6d 75 73  |28.reserved (mus|
0000b510  74 20 62 65 20 30 29 0a  2b 33 32 09 74 72 61 6e  |t be 0).+32.tran|
0000b520  73 70 6f 72 74 20 6f 72  20 70 61 74 74 65 72 6e  |sport or pattern|
0000b530  0a 0a 52 65 74 75 72 6e  73 20 69 6e 66 6f 72 6d  |..Returns inform|
0000b540  61 74 69 6f 6e 20 61 62  6f 75 74 20 74 72 61 6e  |ation about tran|
0000b550  73 70 6f 72 74 73 2e 0a  44 41 54 41 a2 00 00 00  |sports..DATA....|
0000b560  4e 65 77 73 42 61 73 65  5f 53 63 72 69 70 74 43  |NewsBase_ScriptC|
0000b570  6f 6d 6d 61 6e 64 20 28  31 30 30 30 29 0a 2b 32  |ommand (1000).+2|
0000b580  34 09 72 65 73 65 72 76  65 64 20 28 6d 75 73 74  |4.reserved (must|
0000b590  20 62 65 20 30 29 0a 2b  32 38 09 72 65 73 65 72  | be 0).+28.reser|
0000b5a0  76 65 64 20 28 6d 75 73  74 20 62 65 20 30 29 0a  |ved (must be 0).|
0000b5b0  2b 33 32 09 63 6f 6d 6d  61 6e 64 20 73 74 72 69  |+32.command stri|
0000b5c0  6e 67 0a 0a 54 68 69 73  20 69 73 20 73 65 6e 74  |ng..This is sent|
0000b5d0  20 62 79 20 63 6c 69 65  6e 74 73 20 74 6f 20 65  | by clients to e|
0000b5e0  78 65 63 75 74 65 20 61  20 6e 65 77 73 62 61 73  |xecute a newsbas|
0000b5f0  65 20 73 63 72 69 70 74  2e 0a 00 00 44 41 54 41  |e script....DATA|
0000b600  45 01 00 00 4e 65 77 73  42 61 73 65 5f 47 72 6f  |E...NewsBase_Gro|
0000b610  75 70 4f 76 65 72 76 69  65 77 20 28 32 39 30 29  |upOverview (290)|
0000b620  0a 2b 32 34 09 3c 66 6c  61 67 73 3d 3e 2e 66 6c  |.+24.<flags=>.fl|
0000b630  61 67 73 3e 0a 2b 33 32  09 66 69 6c 65 6e 61 6d  |ags>.+32.filenam|
0000b640  65 0a 0a 54 68 65 20 6f  76 65 72 76 69 65 77 20  |e..The overview |
0000b650  66 69 6c 65 20 72 65 74  75 72 6e 65 64 20 73 68  |file returned sh|
0000b660  6f 75 6c 64 20 6e 6f 74  20 62 65 20 68 65 6c 64  |ould not be held|
0000b670  20 6f 70 65 6e 20 66 6f  72 20 74 6f 6f 20 6c 6f  | open for too lo|
0000b680  6e 67 2c 20 73 6f 20 74  68 61 74 20 75 70 64 61  |ng, so that upda|
0000b690  74 65 73 20 61 72 65 20  61 6c 6c 6f 77 65 64 2c  |tes are allowed,|
0000b6a0  20 61 6e 64 20 70 72 65  66 65 72 61 62 6c 79 20  | and preferably |
0000b6b0  6e 6f 74 20 6f 76 65 72  20 3c 57 69 6d 70 5f 50  |not over <Wimp_P|
0000b6c0  6f 6c 6c 3e 73 2e 0a 23  53 75 62 70 61 67 65 20  |oll>s..#Subpage |
0000b6d0  66 6c 61 67 73 0a 47 65  74 4f 76 65 72 76 69 65  |flags.GetOvervie|
0000b6e0  77 20 66 6c 61 67 73 0a  42 69 74 09 4d 65 61 6e  |w flags.Bit.Mean|
0000b6f0  69 6e 67 20 69 66 20 73  65 74 0a 23 4c 69 6e 65  |ing if set.#Line|
0000b700  0a 30 09 66 69 6c 65 20  72 65 74 75 72 6e 65 64  |.0.file returned|
0000b710  20 69 73 20 61 20 73 63  72 61 70 20 66 69 6c 65  | is a scrap file|
0000b720  20 61 6e 64 20 73 68 6f  75 6c 64 20 62 65 20 64  | and should be d|
0000b730  65 6c 65 74 65 64 20 61  66 74 65 72 20 75 73 65  |eleted after use|
0000b740  0a 00 00 00 44 41 54 41  83 00 00 00 4e 65 77 73  |....DATA....News|
0000b750  42 61 73 65 5f 4c 69 73  74 54 72 61 6e 73 70 6f  |Base_ListTranspo|
0000b760  72 74 73 20 28 35 30 30  29 0a 2b 32 34 09 3c 69  |rts (500).+24.<i|
0000b770  74 65 6d 20 74 79 70 65  3d 3e 4d 73 67 5f 4e 42  |tem type=>Msg_NB|
0000b780  5f 43 6f 6d 35 30 30 69  74 65 6d 73 3e 0a 2b 32  |_Com500items>.+2|
0000b790  38 09 74 72 61 6e 73 70  6f 72 74 20 66 6c 61 67  |8.transport flag|
0000b7a0  73 0a 2b 33 32 09 74 72  61 6e 73 70 6f 72 74 20  |s.+32.transport |
0000b7b0  6e 61 6d 65 0a 2b 33 32  2b 6e 09 69 74 65 6d 20  |name.+32+n.item |
0000b7c0  73 74 72 69 6e 67 0a 00  44 41 54 41 e9 00 00 00  |string..DATA....|
0000b7d0  4e 65 77 73 42 61 73 65  20 55 70 64 61 74 65 20  |NewsBase Update |
0000b7e0  74 79 70 65 20 34 2c 20  35 20 61 6e 64 20 36 0a  |type 4, 5 and 6.|
0000b7f0  2b 32 34 09 75 73 65 72  27 73 20 67 72 6f 75 70  |+24.user's group|
0000b800  20 6e 75 6d 62 65 72 0a  2b 32 38 09 3c 75 73 65  | number.+28.<use|
0000b810  72 20 66 6c 61 67 73 3d  3e 4d 73 67 5f 4e 42 5f  |r flags=>Msg_NB_|
0000b820  52 65 70 34 30 30 66 6c  61 67 73 3e 0a 2b 33 32  |Rep400flags>.+32|
0000b830  09 75 73 65 72 20 6e 61  6d 65 0a 2b 33 32 2b 6e  |.user name.+32+n|
0000b840  09 68 6f 6d 65 20 64 69  72 65 63 74 6f 72 79 0a  |.home directory.|
0000b850  2b 33 32 2b 6d 09 72 65  61 6c 20 6e 61 6d 65 0a  |+32+m.real name.|
0000b860  0a 4d 65 73 73 61 67 65  20 36 20 28 55 73 65 72  |.Message 6 (User|
0000b870  20 4d 6f 64 69 66 69 65  64 29 20 69 73 20 73 65  | Modified) is se|
0000b880  6e 74 20 77 68 65 6e 65  76 65 72 20 61 20 75 73  |nt whenever a us|
0000b890  65 72 20 7b 2f 7d 6d 61  79 7b 2f 7d 20 68 61 76  |er {/}may{/} hav|
0000b8a0  65 20 62 65 65 6e 20 6d  6f 64 69 66 69 65 64 2e  |e been modified.|
0000b8b0  0a 00 00 00 44 41 54 41  86 00 00 00 4e 65 77 73  |....DATA....News|
0000b8c0  42 61 73 65 20 55 70 64  61 74 65 20 74 79 70 65  |Base Update type|
0000b8d0  20 31 32 0a 2b 32 34 09  72 65 73 65 72 76 65 64  | 12.+24.reserved|
0000b8e0  0a 2b 32 38 09 72 65 73  65 72 76 65 64 0a 2b 33  |.+28.reserved.+3|
0000b8f0  32 09 6e 65 77 73 67 72  6f 75 70 20 6e 61 6d 65  |2.newsgroup name|
0000b900  0a 0a 54 68 69 73 20 69  73 20 62 72 6f 61 64 63  |..This is broadc|
0000b910  61 73 74 20 77 68 65 6e  20 65 78 70 69 72 79 20  |ast when expiry |
0000b920  68 61 73 20 63 6f 6d 70  6c 65 74 65 64 20 6f 6e  |has completed on|
0000b930  20 61 20 67 72 6f 75 70  2e 0a 00 00 44 41 54 41  | a group....DATA|
0000b940  fe 00 00 00 4e 65 77 73  42 61 73 65 20 55 70 64  |....NewsBase Upd|
0000b950  61 74 65 20 74 79 70 65  20 31 30 30 0a 2b 32 34  |ate type 100.+24|
0000b960  09 3c 6d 65 73 73 61 67  65 20 74 79 70 65 3d 3e  |.<message type=>|
0000b970  2e 74 79 70 65 73 3e 0a  2b 32 38 09 72 65 73 65  |.types>.+28.rese|
0000b980  72 76 65 64 0a 2b 33 32  09 6d 65 73 73 61 67 65  |rved.+32.message|
0000b990  20 74 65 78 74 0a 0a 54  68 69 73 20 69 73 20 62  | text..This is b|
0000b9a0  72 6f 61 64 63 61 73 74  20 74 6f 20 6e 6f 74 69  |roadcast to noti|
0000b9b0  66 79 20 63 6c 69 65 6e  74 73 20 6f 66 20 6d 61  |fy clients of ma|
0000b9c0  6a 6f 72 20 6d 69 73 63  65 6c 6c 61 6e 65 6f 75  |jor miscellaneou|
0000b9d0  73 20 65 76 65 6e 74 73  2e 0a 23 53 75 62 70 61  |s events..#Subpa|
0000b9e0  67 65 20 74 79 70 65 73  0a 4d 65 73 73 61 67 65  |ge types.Message|
0000b9f0  20 74 79 70 65 73 0a 42  69 74 09 4d 65 61 6e 69  | types.Bit.Meani|
0000ba00  6e 67 20 69 66 20 73 65  74 0a 23 4c 69 6e 65 0a  |ng if set.#Line.|
0000ba10  30 09 4d 65 73 73 61 67  65 20 69 73 20 69 6d 70  |0.Message is imp|
0000ba20  6f 72 74 61 6e 74 20 28  6d 69 67 68 74 20 73 6f  |ortant (might so|
0000ba30  75 6e 64 20 62 65 6c 6c  29 0a 00 00 44 41 54 41  |und bell)...DATA|
0000ba40  57 01 00 00 4e 65 77 73  42 61 73 65 5f 53 69 74  |W...NewsBase_Sit|
0000ba50  65 49 6e 66 6f 20 69 74  65 6d 73 0a 49 74 65 6d  |eInfo items.Item|
0000ba60  09 4d 65 61 6e 69 6e 67  0a 23 4c 69 6e 65 0a 30  |.Meaning.#Line.0|
0000ba70  09 66 75 6c 6c 79 2d 71  75 61 6c 69 66 69 65 64  |.fully-qualified|
0000ba80  20 68 6f 73 74 6e 61 6d  65 0a 31 09 6f 72 67 61  | hostname.1.orga|
0000ba90  6e 69 7a 61 74 69 6f 6e  0a 32 20 09 75 6e 71 75  |nization.2 .unqu|
0000baa0  61 6c 69 66 69 65 64 20  68 6f 73 74 6e 61 6d 65  |alified hostname|
0000bab0  0a 33 20 09 64 6f 6d 61  69 6e 20 6e 61 6d 65 0a  |.3 .domain name.|
0000bac0  34 20 09 74 69 6d 65 7a  6f 6e 65 0a 35 20 09 72  |4 .timezone.5 .r|
0000bad0  65 6d 6f 74 65 20 68 6f  73 74 6e 61 6d 65 0a 36  |emote hostname.6|
0000bae0  20 09 6d 61 69 6c 20 68  6f 73 74 6e 61 6d 65 20  | .mail hostname |
0000baf0  28 63 61 6e 20 62 65 20  64 69 66 66 65 72 65 6e  |(can be differen|
0000bb00  74 20 66 72 6f 6d 20 30  29 0a 32 30 20 09 63 75  |t from 0).20 .cu|
0000bb10  72 72 65 6e 74 20 74 72  61 6e 73 70 6f 72 74 20  |rrent transport |
0000bb20  6e 61 6d 65 0a 32 31 20  09 63 75 72 72 65 6e 74  |name.21 .current|
0000bb30  20 74 72 61 6e 73 70 6f  72 74 20 74 79 70 65 20  | transport type |
0000bb40  28 65 69 74 68 65 72 20  22 62 61 74 63 68 22 20  |(either "batch" |
0000bb50  6f 72 20 22 64 69 72 65  63 74 22 29 0a 31 30 30  |or "direct").100|
0000bb60  20 09 75 73 65 72 6e 61  6d 65 20 63 6f 6e 74 72  | .username contr|
0000bb70  6f 6c 20 73 74 61 74 75  73 0a 31 30 31 20 09 64  |ol status.101 .d|
0000bb80  65 66 61 75 6c 74 20 65  78 70 69 72 79 20 74 69  |efault expiry ti|
0000bb90  6d 65 0a 00 44 41 54 41  34 02 00 00 4e 65 77 73  |me..DATA4...News|
0000bba0  42 61 73 65 20 55 73 65  72 20 66 69 65 6c 64 73  |Base User fields|
0000bbb0  0a 46 69 65 6c 64 09 43  6f 6e 74 65 6e 74 73 0a  |.Field.Contents.|
0000bbc0  23 4c 69 6e 65 0a 31 09  70 61 73 73 77 6f 72 64  |#Line.1.password|
0000bbd0  0a 32 09 75 73 65 72 20  6e 75 6d 62 65 72 20 7b  |.2.user number {|
0000bbe0  2f 7d 28 75 6e 75 73 65  64 20 61 74 20 70 72 65  |/}(unused at pre|
0000bbf0  73 65 6e 74 29 7b 2f 7d  0a 33 09 67 72 6f 75 70  |sent){/}.3.group|
0000bc00  20 6e 75 6d 62 65 72 0a  34 09 72 65 61 6c 20 6e  | number.4.real n|
0000bc10  61 6d 65 0a 35 09 68 6f  6d 65 20 64 69 72 65 63  |ame.5.home direc|
0000bc20  74 6f 72 79 0a 36 09 66  6f 72 77 61 72 64 69 6e  |tory.6.forwardin|
0000bc30  67 20 61 64 64 72 65 73  73 0a 37 09 6e 65 77 20  |g address.7.new |
0000bc40  6d 61 69 6c 20 73 63 72  69 70 74 20 63 6f 6d 6d  |mail script comm|
0000bc50  61 6e 64 20 28 65 6e 64  20 6f 66 20 62 61 74 63  |and (end of batc|
0000bc60  68 29 0a 38 09 6e 65 77  20 6d 61 69 6c 20 73 63  |h).8.new mail sc|
0000bc70  72 69 70 74 20 63 6f 6d  6d 61 6e 64 20 28 70 65  |ript command (pe|
0000bc80  72 20 6d 65 73 73 61 67  65 29 0a 39 09 72 65 70  |r message).9.rep|
0000bc90  6c 79 20 74 6f 20 61 64  64 72 65 73 73 0a 31 30  |ly to address.10|
0000bca0  09 6f 75 74 67 6f 69 6e  67 20 6d 61 69 6c 20 66  |.outgoing mail f|
0000bcb0  6f 6c 64 65 72 20 28 27  45 6d 61 69 6c 2e 5c 3c  |older ('Email.\<|
0000bcc0  75 73 65 72 5c 3e 2e 6f  75 74 67 6f 69 6e 67 2e  |user\>.outgoing.|
0000bcd0  6d 61 69 6c 27 20 69 66  20 75 6e 73 65 74 29 0a  |mail' if unset).|
0000bce0  31 31 09 6f 75 74 67 6f  69 6e 67 20 6e 65 77 73  |11.outgoing news|
0000bcf0  20 66 6f 6c 64 65 72 20  28 27 45 6d 61 69 6c 2e  | folder ('Email.|
0000bd00  5c 3c 75 73 65 72 5c 3e  2e 6f 75 74 67 6f 69 6e  |\<user\>.outgoin|
0000bd10  67 2e 6e 65 77 73 27 20  69 66 20 75 6e 73 65 74  |g.news' if unset|
0000bd20  29 0a 31 32 09 63 6f 6d  6d 65 6e 74 20 66 69 65  |).12.comment fie|
0000bd30  6c 64 0a 39 39 09 66 69  6c 65 6e 61 6d 65 20 66  |ld.99.filename f|
0000bd40  6f 72 20 27 76 61 63 61  74 69 6f 6e 27 20 6d 65  |or 'vacation' me|
0000bd50  73 73 61 67 65 2c 20 6f  72 20 6e 75 6c 6c 20 74  |ssage, or null t|
0000bd60  6f 20 63 6c 65 61 72 0a  31 30 30 09 73 74 6f 72  |o clear.100.stor|
0000bd70  65 20 67 65 6e 65 72 61  6c 20 70 75 72 70 6f 73  |e general purpos|
0000bd80  65 20 72 65 73 6f 75 72  63 65 20 66 69 6c 65 2e  |e resource file.|
0000bd90  20 4e 65 77 20 76 61 6c  75 65 20 68 61 73 20 66  | New value has f|
0000bda0  6f 72 6d 61 74 20 27 5c  3c 74 61 72 67 65 74 20  |ormat '\<target |
0000bdb0  66 69 6c 65 5c 3e 20 5c  3c 73 6f 75 72 63 65 20  |file\> \<source |
0000bdc0  66 69 6c 65 5c 3e 27 0a  44 41 54 41 5e 00 00 00  |file\>'.DATA^...|
0000bdd0  55 73 65 72 73 20 66 6c  61 67 73 0a 42 69 74 09  |Users flags.Bit.|
0000bde0  4d 65 61 6e 69 6e 67 20  69 66 20 73 65 74 0a 23  |Meaning if set.#|
0000bdf0  4c 69 6e 65 0a 30 09 50  61 73 73 77 6f 72 64 20  |Line.0.Password |
0000be00  69 73 20 4d 44 35 20 64  69 67 65 73 74 20 28 6f  |is MD5 digest (o|
0000be10  74 68 65 72 77 69 73 65  20 75 6e 65 6e 63 72 79  |therwise unencry|
0000be20  70 74 65 64 29 0a 00 00  44 41 54 41 5a 00 00 00  |pted)...DATAZ...|
0000be30  54 72 61 6e 73 70 6f 72  74 20 69 74 65 6d 73 0a  |Transport items.|
0000be40  49 74 65 6d 09 4d 65 61  6e 69 6e 67 0a 23 4c 69  |Item.Meaning.#Li|
0000be50  6e 65 0a 30 09 4f 75 74  67 6f 69 6e 67 20 73 70  |ne.0.Outgoing sp|
0000be60  6f 6f 6c 20 64 69 72 65  63 74 6f 72 69 65 73 20  |ool directories |
0000be70  28 63 6f 6d 6d 61 20 73  65 70 65 72 61 74 65 64  |(comma seperated|
0000be80  29 0a 00 00 44 41 54 41  20 01 00 00 55 73 65 72  |)...DATA ...User|
0000be90  20 66 6c 61 67 73 0a 42  69 74 09 4d 65 61 6e 69  | flags.Bit.Meani|
0000bea0  6e 67 20 69 66 20 73 65  74 0a 23 4c 69 6e 65 0a  |ng if set.#Line.|
0000beb0  30 09 70 61 73 73 77 6f  72 64 20 69 73 20 72 65  |0.password is re|
0000bec0  71 75 69 72 65 64 0a 31  36 09 6b 65 65 70 20 6d  |quired.16.keep m|
0000bed0  61 69 6c 20 69 73 20 61  63 74 69 76 65 0a 31 37  |ail is active.17|
0000bee0  09 6b 65 65 70 20 6e 65  77 73 20 69 73 20 61 63  |.keep news is ac|
0000bef0  74 69 76 65 0a 31 38 09  63 61 6e 20 70 6f 73 74  |tive.18.can post|
0000bf00  20 6d 61 69 6c 0a 31 39  09 75 73 65 72 6e 61 6d  | mail.19.usernam|
0000bf10  65 20 69 73 20 61 6e 20  61 6c 69 61 73 0a 32 30  |e is an alias.20|
0000bf20  09 68 69 64 64 65 64 0a  32 31 09 64 69 73 61 62  |.hidded.21.disab|
0000bf30  6c 65 64 0a 32 32 09 63  61 6e 20 73 65 6e 64 20  |led.22.can send |
0000bf40  6d 61 69 6c 0a 32 33 09  63 61 6e 20 72 65 61 64  |mail.23.can read|
0000bf50  20 6d 61 69 6c 0a 32 34  09 63 61 6e 20 64 65 6c  | mail.24.can del|
0000bf60  65 74 65 20 6d 61 69 6c  0a 32 35 09 63 61 6e 20  |ete mail.25.can |
0000bf70  72 65 61 64 20 6e 65 77  73 0a 32 36 09 63 61 6e  |read news.26.can|
0000bf80  20 64 65 6c 65 74 65 20  6e 65 77 73 0a 32 37 09  | delete news.27.|
0000bf90  69 73 20 61 6e 20 61 64  6d 69 6e 69 73 74 72 61  |is an administra|
0000bfa0  74 6f 72 0a 44 41 54 41  2a 01 00 00 4d 65 73 73  |tor.DATA*...Mess|
0000bfb0  61 67 65 5f 57 69 6e 64  6f 77 49 6e 66 6f 20 20  |age_WindowInfo  |
0000bfc0  28 26 34 30 30 43 43 29  0a 23 50 61 72 65 6e 74  |(&400CC).#Parent|
0000bfd0  20 4d 53 47 5f 0a 20 2b  20 32 30 09 77 69 6e 64  | MSG_. + 20.wind|
0000bfe0  6f 77 20 68 61 6e 64 6c  65 0a 20 2b 20 32 34 09  |ow handle. + 24.|
0000bff0  72 65 73 65 72 76 65 64  20 28 30 29 0a 20 2b 20  |reserved (0). + |
0000c000  32 38 09 73 70 72 69 74  65 20 6e 61 6d 65 20 28  |28.sprite name (|
0000c010  6d 69 6e 75 73 20 74 68  65 20 69 63 5f 20 62 69  |minus the ic_ bi|
0000c020  74 29 0a 20 2b 20 33 36  09 74 69 74 6c 65 20 74  |t). + 36.title t|
0000c030  6f 20 75 73 65 20 28 61  73 20 73 68 6f 72 74 20  |o use (as short |
0000c040  61 73 20 70 6f 73 73 69  62 6c 65 29 0a 20 0a 54  |as possible). .T|
0000c050  68 69 73 20 6d 65 73 73  61 67 65 20 69 73 20 73  |his message is s|
0000c060  65 6e 74 20 62 79 20 74  68 65 20 69 63 6f 6e 69  |ent by the iconi|
0000c070  73 65 72 20 77 68 65 6e  20 6f 6e 65 20 6f 66 20  |ser when one of |
0000c080  79 6f 75 72 20 77 69 6e  64 6f 77 73 20 69 73 20  |your windows is |
0000c090  69 63 6f 6e 69 73 65 64  2c 20 74 6f 20 66 69 6e  |iconised, to fin|
0000c0a0  64 20 6f 75 74 20 77 68  69 63 68 20 73 70 72 69  |d out which spri|
0000c0b0  74 65 20 61 6e 64 20 6e  61 6d 65 20 74 6f 20 67  |te and name to g|
0000c0c0  69 76 65 20 74 68 65 20  69 63 6f 6e 2e 0a 00 00  |ive the icon....|
0000c0d0  44 41 54 41 25 01 00 00  4d 65 73 73 61 67 65 5f  |DATA%...Message_|
0000c0e0  57 69 6c 6c 50 72 69 6e  74 20 20 28 26 38 30 31  |WillPrint  (&801|
0000c0f0  34 31 29 0a 23 50 61 72  65 6e 74 20 4d 53 47 5f  |41).#Parent MSG_|
0000c100  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 69 73  |.This message is|
0000c110  20 73 65 6e 74 20 74 6f  20 21 50 72 69 6e 74 65  | sent to !Printe|
0000c120  72 73 20 6f 6e 20 72 65  63 65 69 70 74 20 6f 66  |rs on receipt of|
0000c130  20 61 20 3c 50 72 69 6e  74 46 69 6c 65 3d 3e 4d  | a <PrintFile=>M|
0000c140  73 67 5f 38 30 31 34 30  3e 20 6d 65 73 73 61 67  |sg_80140> messag|
0000c150  65 20 74 6f 20 69 6e 64  69 63 61 74 65 20 74 68  |e to indicate th|
0000c160  61 74 20 70 72 69 6e 74  69 6e 67 20 77 69 6c 6c  |at printing will|
0000c170  20 6f 63 63 75 72 20 64  69 72 65 63 74 6c 79 20  | occur directly |
0000c180  74 6f 20 50 72 69 6e 74  65 72 3a 0a 0a 55 73 65  |to Printer:..Use|
0000c190  20 6f 66 20 74 68 69 73  20 6d 65 73 73 61 67 65  | of this message|
0000c1a0  20 69 73 20 64 65 70 72  65 63 69 61 74 65 64 2c  | is depreciated,|
0000c1b0  20 61 6e 64 20 3c 50 72  69 6e 74 54 79 70 65 4f  | and <PrintTypeO|
0000c1c0  64 64 3d 3e 4d 73 67 5f  38 30 31 34 35 3e 20 70  |dd=>Msg_80145> p|
0000c1d0  72 6f 74 6f 63 6f 6c 20  73 68 6f 75 6c 64 20 62  |rotocol should b|
0000c1e0  65 20 75 73 65 64 20 69  6e 20 70 72 65 66 65 72  |e used in prefer|
0000c1f0  65 6e 63 65 2e 00 00 00  44 41 54 41 e3 02 00 00  |ence....DATA....|
0000c200  4d 65 73 73 61 67 65 5f  50 72 69 6e 74 53 61 76  |Message_PrintSav|
0000c210  65 20 20 28 26 38 30 31  34 32 29 0a 23 50 61 72  |e  (&80142).#Par|
0000c220  65 6e 74 20 4d 53 47 5f  0a 2b 20 32 30 09 75 6e  |ent MSG_.+ 20.un|
0000c230  75 73 65 64 0a 2b 20 32  34 09 75 6e 75 73 65 64  |used.+ 24.unused|
0000c240  0a 2b 20 32 38 09 75 6e  75 73 65 64 0a 2b 20 33  |.+ 28.unused.+ 3|
0000c250  32 09 75 6e 75 73 65 64  0a 2b 20 33 36 09 65 73  |2.unused.+ 36.es|
0000c260  74 69 6d 61 74 65 64 20  73 69 7a 65 0a 2b 20 34  |timated size.+ 4|
0000c270  30 09 3c 66 69 6c 65 74  79 70 65 3d 3e 46 69 6c  |0.<filetype=>Fil|
0000c280  65 74 79 70 65 73 3a 21  52 6f 6f 74 3e 20 6f 66  |etypes:!Root> of|
0000c290  20 64 61 74 61 0a 2b 20  34 34 09 70 72 6f 70 6f  | data.+ 44.propo|
0000c2a0  73 65 64 20 6c 65 61 66  6e 61 6d 65 2c 20 7a 65  |sed leafname, ze|
0000c2b0  72 6f 20 74 65 72 6d 69  6e 61 74 65 64 0a 0a 54  |ro terminated..T|
0000c2c0  68 69 73 20 6d 65 73 73  61 67 65 20 69 73 20 73  |his message is s|
0000c2d0  65 6e 74 20 74 6f 20 21  50 72 69 6e 74 65 72 73  |ent to !Printers|
0000c2e0  20 74 6f 20 69 6e 69 74  69 61 74 65 20 61 20 70  | to initiate a p|
0000c2f0  72 69 6e 74 20 73 65 73  73 69 6f 6e 2e 20 54 68  |rint session. Th|
0000c300  69 73 20 73 68 6f 75 6c  64 20 62 65 20 73 65 6e  |is should be sen|
0000c310  74 20 72 65 63 6f 72 64  65 64 20 64 65 6c 69 76  |t recorded deliv|
0000c320  65 72 79 20 28 63 6f 64  65 20 31 38 29 2c 20 61  |ery (code 18), a|
0000c330  6e 64 20 69 66 20 69 74  20 62 6f 75 6e 63 65 73  |nd if it bounces|
0000c340  20 74 68 65 6e 20 79 6f  75 20 73 68 6f 75 6c 64  | then you should|
0000c350  20 63 6f 6d 70 6c 61 69  6e 20 74 68 61 74 20 6e  | complain that n|
0000c360  6f 20 70 72 69 6e 74 65  72 20 64 72 69 76 65 72  |o printer driver|
0000c370  20 69 73 20 70 72 65 73  65 6e 74 2e 0a 0a 50 72  | is present...Pr|
0000c380  69 6e 74 65 72 73 20 77  69 6c 6c 20 72 65 73 70  |inters will resp|
0000c390  6f 6e 64 20 77 69 74 68  20 6f 6e 65 20 6f 66 20  |ond with one of |
0000c3a0  3a 0a 20 8f 09 3c 50 72  69 6e 74 45 72 72 6f 72  |:. ..<PrintError|
0000c3b0  3d 3e 4d 73 67 5f 38 30  31 34 34 3e 20 69 66 20  |=>Msg_80144> if |
0000c3c0  74 68 65 20 70 72 69 6e  74 65 72 20 69 73 20 62  |the printer is b|
0000c3d0  75 73 79 2e 0a 20 8f 09  3c 50 72 69 6e 74 46 69  |usy.. ..<PrintFi|
0000c3e0  6c 65 3d 3e 4d 73 67 5f  38 30 31 34 30 3e 20 28  |le=>Msg_80140> (|
0000c3f0  66 6f 72 20 63 6f 6d 70  61 74 61 62 69 6c 69 74  |for compatabilit|
0000c400  79 20 77 69 74 68 20 52  49 53 43 20 4f 53 20 32  |y with RISC OS 2|
0000c410  20 61 70 70 6c 69 63 61  74 69 6f 6e 73 29 2e 0a  | applications)..|
0000c420  20 8f 09 3c 50 72 69 6e  74 54 79 70 65 4f 64 64  | ..<PrintTypeOdd|
0000c430  3d 3e 4d 73 67 5f 38 30  31 34 35 3e 20 69 66 20  |=>Msg_80145> if |
0000c440  69 74 20 64 6f 65 73 6e  27 74 20 6b 6e 6f 77 20  |it doesn't know |
0000c450  68 6f 77 20 74 6f 20 70  72 69 6e 74 20 74 68 65  |how to print the|
0000c460  20 66 69 6c 65 2e 0a 20  8f 09 3c 44 61 74 61 53  | file.. ..<DataS|
0000c470  61 76 65 41 63 6b 3d 3e  4d 73 67 5f 32 3e 20 69  |aveAck=>Msg_2> i|
0000c480  66 20 74 68 65 20 66 69  6c 65 20 73 68 6f 75 6c  |f the file shoul|
0000c490  64 20 62 65 20 73 61 76  65 64 20 66 6f 72 20 71  |d be saved for q|
0000c4a0  75 65 75 65 69 6e 67 20  28 6c 61 74 65 72 2c 20  |ueueing (later, |
0000c4b0  61 20 50 72 69 6e 74 54  79 70 65 4f 64 64 20 6d  |a PrintTypeOdd m|
0000c4c0  65 73 73 61 67 65 20 77  69 6c 6c 20 62 65 20 62  |essage will be b|
0000c4d0  72 6f 61 64 63 61 73 74  29 2e 0a 00 44 41 54 41  |roadcast)...DATA|
0000c4e0  9d 01 00 00 4d 65 73 73  61 67 65 5f 50 72 69 6e  |....Message_Prin|
0000c4f0  74 49 6e 69 74 20 20 28  26 38 30 31 34 33 29 0a  |tInit  (&80143).|
0000c500  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 54 68 69  |#Parent MSG_.Thi|
0000c510  73 20 6d 65 73 73 61 67  65 20 69 73 20 73 65 6e  |s message is sen|
0000c520  74 20 62 79 20 21 50 72  69 6e 74 65 72 73 20 77  |t by !Printers w|
0000c530  68 65 6e 20 69 74 20 68  61 73 20 6c 6f 61 64 65  |hen it has loade|
0000c540  64 2e 20 41 6c 6c 20 6f  74 68 65 72 20 70 72 69  |d. All other pri|
0000c550  6e 74 65 72 20 64 72 69  76 65 72 73 20 73 68 6f  |nter drivers sho|
0000c560  75 6c 64 20 71 75 69 74  20 71 75 69 65 74 6c 79  |uld quit quietly|
0000c570  20 6f 6e 20 72 65 63 65  69 76 69 6e 67 20 74 68  | on receiving th|
0000c580  69 73 20 6d 65 73 73 61  67 65 2e 0a 0a 54 68 65  |is message...The|
0000c590  20 50 52 4d 27 73 20 64  6f 20 6e 6f 74 20 73 70  | PRM's do not sp|
0000c5a0  65 63 69 66 79 20 77 68  61 74 20 73 68 6f 75 6c  |ecify what shoul|
0000c5b0  64 20 68 61 70 70 65 6e  20 69 66 20 74 68 65 20  |d happen if the |
0000c5c0  61 63 74 69 76 65 20 70  72 69 6e 74 65 72 20 64  |active printer d|
0000c5d0  72 69 76 65 72 20 69 73  20 27 61 63 74 69 76 65  |river is 'active|
0000c5e0  6c 79 27 20 70 72 69 6e  74 69 6e 67 2e 20 49 20  |ly' printing. I |
0000c5f0  77 6f 75 6c 64 20 72 65  63 6f 6d 6d 65 6e 64 20  |would recommend |
0000c600  74 68 61 74 20 73 75 63  68 20 64 72 69 76 65 72  |that such driver|
0000c610  73 20 73 68 6f 75 6c 64  20 63 6f 6d 70 6c 61 69  |s should complai|
0000c620  6e 20 61 6e 64 20 73 65  6e 64 20 3c 50 72 65 51  |n and send <PreQ|
0000c630  75 69 74 3d 3e 4d 73 67  5f 38 3e 20 66 6f 6c 6c  |uit=>Msg_8> foll|
0000c640  6f 77 65 64 20 62 79 20  3c 51 75 69 74 3d 3e 4d  |owed by <Quit=>M|
0000c650  73 67 5f 30 3e 20 74 6f  20 74 68 65 20 6f 72 69  |sg_0> to the ori|
0000c660  67 69 6e 61 74 6f 72 20  6f 66 20 73 75 63 68 20  |ginator of such |
0000c670  6d 65 73 73 61 67 65 73  2e 00 00 00 44 41 54 41  |messages....DATA|
0000c680  bf 01 00 00 4d 65 73 73  61 67 65 5f 50 72 69 6e  |....Message_Prin|
0000c690  74 45 72 72 6f 72 20 20  28 26 38 30 31 34 34 29  |tError  (&80144)|
0000c6a0  0a 23 50 61 72 65 6e 74  20 4d 53 47 5f 0a 2b 20  |.#Parent MSG_.+ |
0000c6b0  32 30 09 3c 65 72 72 6f  72 20 6e 75 6d 62 65 72  |20.<error number|
0000c6c0  3d 3e 2e 65 72 72 6f 72  73 3e 0a 2b 20 32 34 09  |=>.errors>.+ 24.|
0000c6d0  65 72 72 6f 72 20 6d 65  73 73 61 67 65 0a 0a 54  |error message..T|
0000c6e0  68 69 73 20 6d 65 73 73  61 67 65 20 69 73 20 73  |his message is s|
0000c6f0  65 6e 74 20 62 79 20 21  50 72 69 6e 74 65 72 73  |ent by !Printers|
0000c700  20 69 66 20 61 6e 20 65  72 72 6f 72 20 6f 63 63  | if an error occ|
0000c710  75 72 73 20 64 75 72 69  6e 67 20 70 72 69 6e 74  |urs during print|
0000c720  69 6e 67 2e 20 49 66 20  74 68 65 20 6c 65 6e 67  |ing. If the leng|
0000c730  74 68 20 6f 66 20 74 68  65 20 62 6c 6f 63 6b 20  |th of the block |
0000c740  69 73 20 32 30 20 74 68  65 6e 20 79 6f 75 20 73  |is 20 then you s|
0000c750  68 6f 75 6c 64 20 61 73  73 75 6d 65 20 74 68 61  |hould assume tha|
0000c760  74 20 74 68 65 20 70 72  69 6e 74 65 72 20 69 73  |t the printer is|
0000c770  20 62 75 73 79 20 61 6e  64 20 67 69 76 65 20 61  | busy and give a|
0000c780  20 6d 65 73 73 61 67 65  20 74 6f 20 74 68 61 74  | message to that|
0000c790  20 65 66 66 65 63 74 20  2d 20 74 68 69 73 20 69  | effect - this i|
0000c7a0  73 20 6f 6e 6c 79 20 61  70 70 6c 69 63 61 62 6c  |s only applicabl|
0000c7b0  65 20 74 6f 20 52 49 53  43 20 4f 53 20 32 2e 0a  |e to RISC OS 2..|
0000c7c0  23 73 75 62 70 61 67 65  20 65 72 72 6f 72 73 0a  |#subpage errors.|
0000c7d0  50 72 69 6e 74 45 72 72  6f 72 20 65 72 72 6f 72  |PrintError error|
0000c7e0  73 0a 45 72 72 6f 72 09  4d 65 61 6e 69 6e 67 0a  |s.Error.Meaning.|
0000c7f0  23 4c 69 6e 65 0a 31 09  43 61 6e 20 6f 6e 6c 79  |#Line.1.Can only|
0000c800  20 70 72 69 6e 74 20 66  72 6f 6d 20 61 70 70 6c  | print from appl|
0000c810  69 63 61 74 69 6f 6e 73  20 77 68 65 6e 20 61 20  |ications when a |
0000c820  70 72 69 6e 74 65 72 20  68 61 73 20 62 65 65 6e  |printer has been|
0000c830  20 73 65 6c 65 63 74 65  64 2e 0a 00 44 41 54 41  | selected...DATA|
0000c840  5e 03 00 00 4d 65 73 73  61 67 65 5f 50 72 69 6e  |^...Message_Prin|
0000c850  74 54 79 70 65 4f 64 64  20 20 28 26 38 30 31 34  |tTypeOdd  (&8014|
0000c860  35 29 0a 23 50 61 72 65  6e 74 20 4d 53 47 5f 0a  |5).#Parent MSG_.|
0000c870  2b 20 34 30 09 3c 66 69  6c 65 74 79 70 65 3d 3e  |+ 40.<filetype=>|
0000c880  46 69 6c 65 74 79 70 65  73 3a 21 52 6f 6f 74 3e  |Filetypes:!Root>|
0000c890  20 6f 66 20 64 61 74 61  0a 2b 20 34 34 09 66 69  | of data.+ 44.fi|
0000c8a0  6c 65 6e 61 6d 65 0a 0a  54 68 69 73 20 6d 65 73  |lename..This mes|
0000c8b0  73 61 67 65 20 69 73 20  73 65 6e 74 20 62 79 20  |sage is sent by |
0000c8c0  21 50 72 69 6e 74 65 72  73 20 77 68 65 6e 20 69  |!Printers when i|
0000c8d0  74 20 64 6f 65 73 6e 27  74 20 6b 6e 6f 77 20 68  |t doesn't know h|
0000c8e0  6f 77 20 74 6f 20 70 72  69 6e 74 20 74 68 65 20  |ow to print the |
0000c8f0  66 69 6c 65 2e 20 54 68  65 20 66 69 6c 65 74 79  |file. The filety|
0000c900  70 65 20 61 6e 64 20 66  69 6c 65 6e 61 6d 65 20  |pe and filename |
0000c910  63 61 6e 6e 6f 74 20 62  65 20 72 65 6c 69 65 64  |cannot be relied|
0000c920  20 6f 6e 20 69 66 20 77  65 20 68 61 76 65 20 6a  | on if we have j|
0000c930  75 73 74 20 63 6f 6d 65  20 66 72 6f 6d 20 61 20  |ust come from a |
0000c940  3c 50 72 69 6e 74 53 61  76 65 3d 3e 4d 73 67 5f  |<PrintSave=>Msg_|
0000c950  38 30 31 34 32 3e 20 6d  65 73 73 61 67 65 2c 20  |80142> message, |
0000c960  74 68 6f 75 67 68 20 77  68 79 20 74 68 65 20 50  |though why the P|
0000c970  52 4d 27 73 20 73 74 61  74 65 20 74 68 69 73 2c  |RM's state this,|
0000c980  20 49 27 6d 20 6e 6f 74  20 73 75 72 65 2e 0a 0a  | I'm not sure...|
0000c990  49 66 20 61 6e 20 61 70  70 6c 69 63 61 74 69 6f  |If an applicatio|
0000c9a0  6e 20 6b 6e 6f 77 73 20  68 6f 77 20 74 6f 20 70  |n knows how to p|
0000c9b0  72 69 6e 74 20 74 68 61  74 20 66 69 6c 65 74 79  |rint that filety|
0000c9c0  70 65 20 28 64 6f 68 2c  20 68 6f 77 20 63 61 6e  |pe (doh, how can|
0000c9d0  20 79 6f 75 20 64 6f 20  74 68 69 73 20 69 66 20  | you do this if |
0000c9e0  79 6f 75 20 63 61 6e 27  74 20 72 65 6c 79 20 6f  |you can't rely o|
0000c9f0  6e 20 69 74 20 3f 29 20  74 68 65 6e 20 69 74 20  |n it ?) then it |
0000ca00  73 68 6f 75 6c 64 20 72  65 73 70 6f 6e 64 20 77  |should respond w|
0000ca10  69 74 68 20 3c 50 72 69  6e 74 54 79 70 65 4b 6e  |ith <PrintTypeKn|
0000ca20  6f 77 6e 3d 3e 4d 73 67  5f 38 30 31 34 36 3e 20  |own=>Msg_80146> |
0000ca30  61 6e 64 20 65 69 74 68  65 72 20 3a 0a 20 8f 09  |and either :. ..|
0000ca40  50 72 69 6e 74 20 74 68  65 20 66 69 6c 65 20 74  |Print the file t|
0000ca50  6f 20 50 72 69 6e 74 65  72 3a 0a 20 8f 09 4f 75  |o Printer:. ..Ou|
0000ca60  74 70 75 74 20 74 68 65  20 66 69 6c 65 20 28 64  |tput the file (d|
0000ca70  6f 65 73 20 74 68 69 73  20 6d 65 61 6e 20 70 72  |oes this mean pr|
0000ca80  69 6e 74 20 61 67 61 69  6e 20 3f 29 20 74 6f 20  |int again ?) to |
0000ca90  50 72 69 6e 74 65 72 24  54 65 6d 70 20 2f 62 65  |Printer$Temp /be|
0000caa0  66 6f 72 65 2f 20 72 65  73 70 6f 6e 64 69 6e 67  |fore/ responding|
0000cab0  20 77 69 74 68 20 50 72  69 6e 74 54 79 70 65 4b  | with PrintTypeK|
0000cac0  6e 6f 77 6e 2e 0a 0a 49  66 20 69 74 20 64 6f 65  |nown...If it doe|
0000cad0  73 20 6e 6f 74 20 6b 6e  6f 77 20 74 68 65 20 74  |s not know the t|
0000cae0  79 70 65 2c 20 74 68 65  6e 20 69 74 20 73 68 6f  |ype, then it sho|
0000caf0  75 6c 64 20 69 67 6e 6f  72 65 20 74 68 65 20 6d  |uld ignore the m|
0000cb00  65 73 73 61 67 65 20 61  6e 64 20 61 77 61 69 74  |essage and await|
0000cb10  20 61 20 3c 44 61 74 61  53 61 76 65 41 63 6b 3d  | a <DataSaveAck=|
0000cb20  3e 4d 73 67 5f 32 3e 20  28 77 68 69 63 68 20 6d  |>Msg_2> (which m|
0000cb30  61 79 20 6e 65 76 65 72  20 61 72 72 69 76 65 20  |ay never arrive |
0000cb40  69 66 20 61 6e 6f 74 68  65 72 20 61 70 70 6c 69  |if another appli|
0000cb50  63 61 74 69 6f 6e 20 6b  6e 6f 77 73 20 68 6f 77  |cation knows how|
0000cb60  20 74 6f 20 70 72 69 6e  74 20 74 68 65 20 66 69  | to print the fi|
0000cb70  6c 65 29 20 74 6f 20 71  75 65 75 65 20 74 68 65  |le) to queue the|
0000cb80  20 66 69 6c 65 20 66 6f  72 20 6c 61 74 65 72 20  | file for later |
0000cb90  70 72 69 6e 74 69 6e 67  2e 0a 00 00 44 41 54 41  |printing....DATA|
0000cba0  ad 00 00 00 4d 65 73 73  61 67 65 5f 50 72 69 6e  |....Message_Prin|
0000cbb0  74 54 79 70 65 4b 6e 6f  77 6e 20 20 28 26 38 30  |tTypeKnown  (&80|
0000cbc0  31 34 36 29 0a 23 50 61  72 65 6e 74 20 4d 53 47  |146).#Parent MSG|
0000cbd0  5f 0a 54 68 69 73 20 6d  65 73 73 61 67 65 20 69  |_.This message i|
0000cbe0  73 20 73 65 6e 74 20 74  6f 20 21 50 72 69 6e 74  |s sent to !Print|
0000cbf0  65 72 73 20 74 6f 20 69  6e 64 69 63 61 74 65 20  |ers to indicate |
0000cc00  74 68 61 74 20 61 6e 20  61 70 70 6c 69 63 61 74  |that an applicat|
0000cc10  69 6f 6e 20 68 61 73 20  70 72 69 6e 74 65 64 2c  |ion has printed,|
0000cc20  20 6f 72 20 69 73 20 70  72 69 6e 74 69 6e 67 20  | or is printing |
0000cc30  28 69 73 20 74 68 61 74  20 72 69 67 68 74 20 3f  |(is that right ?|
0000cc40  29 20 61 20 66 69 6c 65  2e 00 00 00 44 41 54 41  |) a file....DATA|
0000cc50  92 00 00 00 4d 65 73 73  61 67 65 5f 53 65 74 50  |....Message_SetP|
0000cc60  72 69 6e 74 65 72 20 20  28 26 38 30 31 34 37 29  |rinter  (&80147)|
0000cc70  0a 23 50 61 72 65 6e 74  20 4d 53 47 5f 0a 54 68  |.#Parent MSG_.Th|
0000cc80  69 73 20 6d 65 73 73 61  67 65 20 69 73 20 73 65  |is message is se|
0000cc90  6e 74 20 62 79 20 21 50  72 69 6e 74 65 72 73 20  |nt by !Printers |
0000cca0  74 6f 20 69 6e 64 69 63  61 74 65 20 74 68 61 74  |to indicate that|
0000ccb0  20 74 68 65 20 70 72 69  6e 74 65 72 20 73 65 74  | the printer set|
0000ccc0  74 6e 67 73 20 6f 72 20  73 65 6c 65 63 74 69 6f  |tngs or selectio|
0000ccd0  6e 20 68 61 73 20 63 68  61 6e 67 65 64 2e 00 00  |n has changed...|
0000cce0  44 41 54 41 c0 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
0000ccf0  50 53 50 72 69 6e 74 65  72 51 75 65 72 79 20 20  |PSPrinterQuery  |
0000cd00  28 26 38 30 31 34 43 29  0a 23 50 61 72 65 6e 74  |(&8014C).#Parent|
0000cd10  20 4d 53 47 5f 0a 2b 20  32 30 09 62 75 66 66 65  | MSG_.+ 20.buffe|
0000cd20  72 20 61 64 64 72 65 73  73 2c 20 6f 72 20 7a 65  |r address, or ze|
0000cd30  72 6f 0a 2b 20 32 34 09  62 75 66 66 65 72 20 73  |ro.+ 24.buffer s|
0000cd40  69 7a 65 0a 0a 54 68 69  73 20 6d 65 73 73 61 67  |ize..This messag|
0000cd50  65 20 69 73 20 73 65 6e  74 20 62 79 20 21 46 6f  |e is sent by !Fo|
0000cd60  6e 74 50 72 69 6e 74 20  74 6f 20 21 50 72 69 6e  |ntPrint to !Prin|
0000cd70  74 65 72 73 20 74 6f 20  61 73 6b 20 66 6f 72 20  |ters to ask for |
0000cd80  69 6e 66 6f 72 6d 61 74  69 6f 6e 2e 20 49 66 20  |information. If |
0000cd90  74 68 65 20 62 75 66 66  65 72 20 73 69 7a 65 20  |the buffer size |
0000cda0  69 73 20 6e 6f 74 20 7a  65 72 6f 20 74 68 65 6e  |is not zero then|
0000cdb0  20 74 68 65 20 64 61 74  61 20 70 6c 61 63 65 64  | the data placed|
0000cdc0  20 69 6e 20 74 68 65 20  62 75 66 66 65 72 20 73  | in the buffer s|
0000cdd0  68 6f 75 6c 64 20 62 65  20 3a 0a 8f 09 43 75 72  |hould be :...Cur|
0000cde0  72 65 6e 74 20 70 72 69  6e 74 65 72 20 6e 61 6d  |rent printer nam|
0000cdf0  65 0a 8f 09 43 75 72 72  65 6e 74 20 70 72 69 6e  |e...Current prin|
0000ce00  74 65 72 20 74 79 70 65  0a 8f 09 50 61 74 68 6e  |ter type...Pathn|
0000ce10  61 6d 65 20 74 6f 20 70  72 69 6e 74 65 72 20 66  |ame to printer f|
0000ce20  6f 6e 74 20 66 69 6c 65  0a 0a 21 50 72 69 6e 74  |ont file..!Print|
0000ce30  65 72 73 20 73 68 6f 75  6c 64 20 61 6c 77 61 79  |ers should alway|
0000ce40  73 20 72 65 73 70 6f 6e  64 20 62 79 20 70 6c 61  |s respond by pla|
0000ce50  63 69 6e 67 20 74 68 65  20 73 69 7a 65 20 6f 66  |cing the size of|
0000ce60  20 74 68 65 20 62 75 66  66 65 72 20 69 6e 20 74  | the buffer in t|
0000ce70  68 65 20 62 6c 6f 63 6b  20 61 6e 64 20 73 65 6e  |he block and sen|
0000ce80  64 69 6e 67 20 3c 50 53  50 72 69 6e 74 65 72 41  |ding <PSPrinterA|
0000ce90  63 6b 3d 3e 4d 73 67 5f  38 30 31 34 44 3e 2e 0a  |ck=>Msg_8014D>..|
0000cea0  44 41 54 41 66 01 00 00  4d 65 73 73 61 67 65 5f  |DATAf...Message_|
0000ceb0  50 53 50 72 69 6e 74 65  72 41 63 6b 20 20 28 26  |PSPrinterAck  (&|
0000cec0  38 30 31 34 44 29 0a 23  50 61 72 65 6e 74 20 4d  |8014D).#Parent M|
0000ced0  53 47 5f 0a 2b 20 32 34  09 62 75 66 66 65 72 20  |SG_.+ 24.buffer |
0000cee0  73 69 7a 65 0a 0a 54 68  69 73 20 6d 65 73 73 61  |size..This messa|
0000cef0  67 65 20 69 73 20 73 65  6e 74 20 62 79 20 21 50  |ge is sent by !P|
0000cf00  72 69 6e 74 65 72 73 20  74 6f 20 21 46 6f 6e 74  |rinters to !Font|
0000cf10  50 72 69 6e 74 20 74 6f  20 6e 6f 74 69 66 79 20  |Print to notify |
0000cf20  74 68 61 74 20 69 74 20  68 61 73 20 65 69 74 68  |that it has eith|
0000cf30  65 72 20 66 69 6c 6c 65  64 20 69 6e 20 74 68 65  |er filled in the|
0000cf40  20 62 6c 6f 63 6b 20 72  65 71 75 69 72 65 64 20  | block required |
0000cf50  62 79 20 3c 50 53 50 72  69 6e 74 65 72 51 75 65  |by <PSPrinterQue|
0000cf60  72 79 3d 3e 4d 73 67 5f  38 30 31 34 63 3e 2c 20  |ry=>Msg_8014c>, |
0000cf70  6f 72 20 74 6f 20 74 65  6c 6c 20 69 74 20 74 68  |or to tell it th|
0000cf80  65 20 73 69 7a 65 20 6f  66 20 74 68 65 20 62 6c  |e size of the bl|
0000cf90  6f 63 6b 20 72 65 71 75  69 72 65 64 2e 0a 0a 49  |ock required...I|
0000cfa0  66 20 21 46 6f 6e 74 50  72 69 6e 74 20 64 6f 65  |f !FontPrint doe|
0000cfb0  73 20 6e 6f 74 20 72 65  63 65 69 76 65 20 74 68  |s not receive th|
0000cfc0  69 73 20 6d 65 73 73 61  67 65 20 74 68 65 6e 20  |is message then |
0000cfd0  69 74 20 73 68 6f 75 6c  64 20 72 65 70 6f 72 74  |it should report|
0000cfe0  20 61 6e 20 65 72 72 6f  72 20 61 73 20 6e 6f 20  | an error as no |
0000cff0  70 72 69 6e 74 65 72 20  69 73 20 69 6e 73 74 61  |printer is insta|
0000d000  6c 6c 65 64 2e 0a 00 00  44 41 54 41 b7 00 00 00  |lled....DATA....|
0000d010  4d 65 73 73 61 67 65 5f  50 53 50 72 69 6e 74 65  |Message_PSPrinte|
0000d020  72 4d 6f 64 69 66 69 65  64 20 20 28 26 38 30 31  |rModified  (&801|
0000d030  34 45 29 0a 23 50 61 72  65 6e 74 20 4d 53 47 5f  |4E).#Parent MSG_|
0000d040  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 69 73  |.This message is|
0000d050  20 73 65 6e 74 20 62 79  20 21 46 6f 6e 74 50 72  | sent by !FontPr|
0000d060  69 6e 74 20 77 68 65 6e  20 74 68 65 20 66 6f 6e  |int when the fon|
0000d070  74 20 6c 69 73 74 20 66  69 6c 65 20 68 61 73 20  |t list file has |
0000d080  63 68 61 6e 67 65 64 2e  20 54 68 65 20 70 72 69  |changed. The pri|
0000d090  6e 74 65 72 20 64 72 69  76 65 72 20 73 68 6f 75  |nter driver shou|
0000d0a0  6c 64 20 72 65 2d 72 65  61 64 20 74 68 65 20 66  |ld re-read the f|
0000d0b0  69 6c 65 20 6f 6e 20 72  65 63 65 69 70 74 2e 00  |ile on receipt..|
0000d0c0  44 41 54 41 e0 00 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
0000d0d0  50 53 50 72 69 6e 74 65  72 44 65 66 61 75 6c 74  |PSPrinterDefault|
0000d0e0  20 20 28 26 38 30 31 34  46 29 0a 23 50 61 72 65  |  (&8014F).#Pare|
0000d0f0  6e 74 20 4d 53 47 5f 0a  54 68 69 73 20 6d 65 73  |nt MSG_.This mes|
0000d100  73 61 67 65 20 69 73 20  73 65 6e 74 20 62 79 20  |sage is sent by |
0000d110  21 46 6f 6e 74 50 72 69  6e 74 20 77 68 65 6e 20  |!FontPrint when |
0000d120  74 68 65 20 66 6f 6e 74  20 6c 69 73 74 20 66 69  |the font list fi|
0000d130  6c 65 20 73 68 6f 75 6c  64 20 62 65 20 72 65 73  |le should be res|
0000d140  65 74 20 74 6f 20 69 74  73 20 64 65 66 61 75 6c  |et to its defaul|
0000d150  74 20 73 74 61 74 65 2e  20 54 68 65 20 70 72 69  |t state. The pri|
0000d160  6e 74 65 72 20 64 72 69  76 65 72 20 73 68 6f 75  |nter driver shou|
0000d170  6c 64 20 72 65 73 70 6f  6e 64 20 77 69 74 68 20  |ld respond with |
0000d180  3c 50 53 50 72 69 6e 74  65 72 44 65 66 61 75 6c  |<PSPrinterDefaul|
0000d190  74 65 64 3d 3e 4d 73 67  5f 38 30 31 35 30 3e 2e  |ted=>Msg_80150>.|
0000d1a0  44 41 54 41 c1 00 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
0000d1b0  50 53 50 72 69 6e 74 65  72 44 65 66 61 75 6c 74  |PSPrinterDefault|
0000d1c0  65 64 20 20 28 26 38 30  31 35 30 29 0a 23 50 61  |ed  (&80150).#Pa|
0000d1d0  72 65 6e 74 20 4d 53 47  5f 0a 54 68 69 73 20 6d  |rent MSG_.This m|
0000d1e0  65 73 73 61 67 65 20 69  73 20 73 65 6e 74 20 62  |essage is sent b|
0000d1f0  79 20 21 50 72 69 6e 74  65 72 73 20 77 68 65 6e  |y !Printers when|
0000d200  20 74 68 65 20 66 6f 6e  74 20 6c 69 73 74 20 66  | the font list f|
0000d210  69 6c 65 20 68 61 73 20  62 65 65 6e 20 72 65 73  |ile has been res|
0000d220  65 74 2e 20 54 68 69 73  20 69 73 20 75 73 75 61  |et. This is usua|
0000d230  6c 6c 79 20 69 6e 20 72  65 73 70 6f 6e 73 65 20  |lly in response |
0000d240  74 6f 20 3c 50 53 50 72  69 6e 74 65 72 44 65 66  |to <PSPrinterDef|
0000d250  61 75 6c 74 3d 3e 4d 73  67 5f 38 30 31 34 46 3e  |ault=>Msg_8014F>|
0000d260  2e 00 00 00 44 41 54 41  b8 00 00 00 4d 65 73 73  |....DATA....Mess|
0000d270  61 67 65 5f 50 53 50 72  69 6e 74 65 72 4e 6f 74  |age_PSPrinterNot|
0000d280  50 53 20 20 28 26 38 30  31 35 31 29 0a 23 50 61  |PS  (&80151).#Pa|
0000d290  72 65 6e 74 20 4d 53 47  5f 0a 54 68 69 73 20 6d  |rent MSG_.This m|
0000d2a0  65 73 73 61 67 65 20 69  73 20 73 65 6e 74 20 62  |essage is sent b|
0000d2b0  79 20 21 50 72 69 6e 74  65 72 73 20 69 66 20 69  |y !Printers if i|
0000d2c0  74 20 72 65 63 65 69 76  65 73 20 3c 50 53 50 72  |t receives <PSPr|
0000d2d0  69 6e 74 65 72 51 75 65  72 79 3d 3e 4d 73 67 5f  |interQuery=>Msg_|
0000d2e0  38 30 31 34 43 3e 20 61  6e 64 20 74 68 65 20 63  |8014C> and the c|
0000d2f0  75 72 72 65 6e 74 6c 79  20 73 65 6c 65 63 74 65  |urrently selecte|
0000d300  64 20 70 72 69 6e 74 65  72 20 69 73 20 6e 6f 74  |d printer is not|
0000d310  20 70 6f 73 74 73 63 72  69 70 74 2e 44 41 54 41  | postscript.DATA|
0000d320  a9 00 00 00 4d 65 73 73  61 67 65 5f 52 65 73 65  |....Message_Rese|
0000d330  74 50 72 69 6e 74 65 72  20 20 28 26 38 30 31 35  |tPrinter  (&8015|
0000d340  32 29 0a 23 50 61 72 65  6e 74 20 4d 53 47 5f 0a  |2).#Parent MSG_.|
0000d350  54 68 69 73 20 6d 65 73  73 61 67 65 20 69 73 20  |This message is |
0000d360  73 65 6e 74 20 74 6f 20  21 50 72 69 6e 74 65 72  |sent to !Printer|
0000d370  73 20 74 6f 20 65 6e 73  75 72 65 20 74 68 61 74  |s to ensure that|
0000d380  20 74 68 65 20 70 72 69  6e 74 65 72 20 73 65 74  | the printer set|
0000d390  74 69 6e 67 73 20 61 72  65 20 63 6f 72 72 65 63  |tings are correc|
0000d3a0  74 20 66 6f 72 20 74 68  65 20 63 75 72 72 65 6e  |t for the curren|
0000d3b0  74 6c 79 20 73 65 6c 65  63 74 65 64 20 70 72 69  |tly selected pri|
0000d3c0  6e 74 65 72 2e 00 00 00  44 41 54 41 71 00 00 00  |nter....DATAq...|
0000d3d0  4d 65 73 73 61 67 65 5f  50 53 49 73 46 6f 6e 74  |Message_PSIsFont|
0000d3e0  52 75 6e 6e 69 6e 67 20  20 28 26 38 30 31 35 33  |Running  (&80153|
0000d3f0  29 0a 23 50 61 72 65 6e  74 20 4d 53 47 5f 0a 49  |).#Parent MSG_.I|
0000d400  66 20 21 46 6f 6e 74 50  72 69 6e 74 20 69 73 20  |f !FontPrint is |
0000d410  72 75 6e 6e 69 6e 67 20  69 74 20 77 69 6c 6c 20  |running it will |
0000d420  61 63 6b 6e 6f 77 6c 65  64 67 65 20 74 68 69 73  |acknowledge this|
0000d430  20 6d 65 73 73 61 67 65  2e 00 00 00 44 41 54 41  | message....DATA|
0000d440  0a 07 00 00 45 78 74 65  72 6e 61 6c 20 45 64 69  |....External Edi|
0000d450  74 20 63 6c 69 65 6e 74  73 0a 54 68 65 20 63 6c  |t clients.The cl|
0000d460  69 65 6e 74 20 61 70 70  6c 69 63 61 74 69 6f 6e  |ient application|
0000d470  20 69 73 20 64 65 66 69  6e 65 64 20 61 73 20 74  | is defined as t|
0000d480  68 61 74 20 77 68 69 63  68 20 69 6e 69 74 69 61  |hat which initia|
0000d490  74 65 73 20 74 68 65 20  65 64 69 74 69 6e 67 20  |tes the editing |
0000d4a0  73 65 73 73 69 6f 6e 2c  20 69 65 20 74 68 61 74  |session, ie that|
0000d4b0  20 77 68 69 63 68 20 61  73 6b 73 20 74 68 65 20  | which asks the |
0000d4c0  65 64 69 74 6f 72 20 66  6f 72 20 61 20 6e 65 77  |editor for a new|
0000d4d0  20 73 65 73 73 69 6f 6e  2e 0a 0a 54 68 65 20 63  | session...The c|
0000d4e0  6c 69 65 6e 74 20 61 70  70 6c 69 63 61 74 69 6f  |lient applicatio|
0000d4f0  6e 20 64 65 63 69 64 65  73 20 28 75 73 75 61 6c  |n decides (usual|
0000d500  6c 79 20 61 74 20 74 68  65 20 72 65 71 75 65 73  |ly at the reques|
0000d510  74 20 6f 66 20 74 68 65  20 75 73 65 72 29 20 74  |t of the user) t|
0000d520  68 61 74 20 73 6f 6d 65  20 64 61 74 61 20 6e 65  |hat some data ne|
0000d530  65 64 73 20 74 6f 20 62  65 20 65 64 69 74 65 64  |eds to be edited|
0000d540  2e 20 55 6e 61 62 6c 65  20 74 6f 20 73 75 70 70  |. Unable to supp|
0000d550  6c 79 20 74 68 69 73 20  66 75 6e 63 74 69 6f 6e  |ly this function|
0000d560  20 69 74 73 65 6c 66 2c  20 69 74 20 62 72 6f 61  | itself, it broa|
0000d570  64 63 61 73 74 73 20 74  6f 20 61 6c 6c 20 6f 74  |dcasts to all ot|
0000d580  68 65 72 20 61 70 70 6c  69 63 61 74 69 6f 6e 73  |her applications|
0000d590  20 72 65 71 75 65 73 74  69 6e 67 20 61 6e 20 45  | requesting an E|
0000d5a0  78 74 65 72 6e 61 6c 20  45 64 69 74 69 6e 67 20  |xternal Editing |
0000d5b0  73 65 73 73 69 6f 6e 20  28 3c 45 64 69 74 52 71  |session (<EditRq|
0000d5c0  3d 3e 4d 73 67 5f 34 35  64 38 30 3e 29 2e 0a 0a  |=>Msg_45d80>)...|
0000d5d0  49 66 20 6e 6f 20 72 65  70 6c 79 20 69 73 20 72  |If no reply is r|
0000d5e0  65 63 69 65 76 65 64 20  28 74 68 65 20 6d 65 73  |ecieved (the mes|
0000d5f0  73 61 67 65 20 62 6f 75  6e 63 65 73 29 2c 20 74  |sage bounces), t|
0000d600  68 65 6e 20 74 68 65 20  63 6c 69 65 6e 74 20 6d  |hen the client m|
0000d610  61 79 20 74 61 6b 65 20  61 6e 79 20 61 70 70 72  |ay take any appr|
0000d620  6f 70 72 69 61 74 65 20  61 63 74 69 6f 6e 20 28  |opriate action (|
0000d630  66 6f 72 20 65 78 61 6d  70 6c 65 2c 20 72 75 6e  |for example, run|
0000d640  20 61 6e 20 65 64 69 74  6f 72 20 28 55 73 69 6e  | an editor (Usin|
0000d650  67 20 74 68 65 20 3c 41  6c 69 61 73 20 76 61 72  |g the <Alias var|
0000d660  69 61 62 6c 65 3d 3e 4d  73 67 5f 45 78 74 45 64  |iable=>Msg_ExtEd|
0000d670  69 74 56 61 72 69 61 62  6c 65 3e 29 20 61 6e 64  |itVariable>) and|
0000d680  20 74 68 65 6e 20 72 65  2d 62 72 6f 61 64 63 61  | then re-broadca|
0000d690  73 74 20 74 68 65 20 72  65 71 75 65 73 74 29 2c  |st the request),|
0000d6a0  20 62 75 74 20 69 66 20  74 68 65 20 65 64 69 74  | but if the edit|
0000d6b0  20 69 73 20 6e 6f 74 20  70 6f 73 73 69 62 6c 65  | is not possible|
0000d6c0  2c 20 74 68 65 20 63 6c  69 65 6e 74 20 77 69 6c  |, the client wil|
0000d6d0  6c 20 69 6e 66 6f 72 6d  20 74 68 65 20 75 73 65  |l inform the use|
0000d6e0  72 20 77 69 74 68 20 61  6e 20 65 72 72 6f 72 20  |r with an error |
0000d6f0  6d 65 73 73 61 67 65 20  69 6e 64 69 63 61 74 69  |message indicati|
0000d700  6e 67 20 74 68 61 74 20  74 68 65 20 65 64 69 74  |ng that the edit|
0000d710  20 69 73 20 6e 6f 74 20  70 6f 73 73 69 62 6c 65  | is not possible|
0000d720  2e 0a 0a 49 66 20 61 20  72 65 70 6c 79 20 69 73  |...If a reply is|
0000d730  20 72 65 63 65 69 76 65  64 20 28 3c 45 64 69 74  | received (<Edit|
0000d740  41 63 6b 3d 3e 4d 73 67  5f 34 35 64 38 31 3e 29  |Ack=>Msg_45d81>)|
0000d750  2c 20 74 68 65 6e 20 61  20 77 69 6e 64 6f 77 20  |, then a window |
0000d760  77 69 6c 6c 20 68 61 76  65 20 62 65 65 6e 20 6f  |will have been o|
0000d770  70 65 6e 65 64 2c 20 61  6e 64 20 74 68 65 20 75  |pened, and the u|
0000d780  73 65 72 20 6d 61 79 20  6e 6f 77 20 65 64 69 74  |ser may now edit|
0000d790  20 74 68 65 20 28 62 6c  61 6e 6b 29 20 64 61 74  | the (blank) dat|
0000d7a0  61 20 69 6e 20 74 68 69  73 20 77 69 6e 64 6f 77  |a in this window|
0000d7b0  2e 20 54 68 65 20 63 6c  69 65 6e 74 20 6e 6f 77  |. The client now|
0000d7c0  20 68 61 73 20 74 68 65  20 66 6f 6c 6c 6f 77 69  | has the followi|
0000d7d0  6e 67 20 6f 70 74 69 6f  6e 73 3a 0a 0a 8f 09 42  |ng options:....B|
0000d7e0  79 20 73 74 61 72 74 69  6e 67 20 61 20 64 61 74  |y starting a dat|
0000d7f0  61 20 74 72 61 6e 73 66  65 72 20 74 6f 20 74 68  |a transfer to th|
0000d800  65 20 65 64 69 74 6f 72  20 28 3c 45 64 69 74 44  |e editor (<EditD|
0000d810  61 74 61 53 61 76 65 3d  3e 4d 73 67 5f 34 35 64  |ataSave=>Msg_45d|
0000d820  38 34 3e 29 2c 20 74 68  65 20 63 6c 69 65 6e 74  |84>), the client|
0000d830  20 63 61 6e 20 69 6e 73  65 72 74 20 73 6f 6d 65  | can insert some|
0000d840  20 64 61 74 61 20 61 74  20 74 68 65 20 90 63 75  | data at the .cu|
0000d850  72 72 65 6e 74 20 20 70  6f 73 69 74 69 6f 6e 91  |rrent  position.|
0000d860  20 69 6e 20 74 68 65 20  65 64 69 74 65 64 20 64  | in the edited d|
0000d870  61 74 61 3b 20 74 68 69  73 20 63 61 6e 20 62 65  |ata; this can be|
0000d880  20 64 6f 6e 65 20 61 74  20 61 6e 79 20 74 69 6d  | done at any tim|
0000d890  65 2c 20 62 75 74 20 69  73 20 6d 61 69 6e 6c 79  |e, but is mainly|
0000d8a0  20 69 6e 74 65 6e 64 65  64 20 74 6f 20 73 75 70  | intended to sup|
0000d8b0  70 6c 79 20 61 6e 20 69  6e 69 74 69 61 6c 20 63  |ply an initial c|
0000d8c0  68 75 6e 6b 20 6f 66 20  64 61 74 61 20 74 6f 20  |hunk of data to |
0000d8d0  62 65 20 65 64 69 74 65  64 2e 20 46 6f 72 20 65  |be edited. For e|
0000d8e0  78 61 6d 70 6c 65 2c 20  61 20 63 6f 6d 70 69 6c  |xample, a compil|
0000d8f0  65 72 20 6d 69 67 68 74  20 6d 61 6b 65 20 45 64  |er might make Ed|
0000d900  69 74 20 64 69 73 70 6c  61 79 20 61 20 73 6f 75  |it display a sou|
0000d910  72 63 65 20 63 6f 64 65  20 66 69 6c 65 20 69 66  |rce code file if|
0000d920  20 61 6e 20 65 72 72 6f  72 20 68 61 73 20 62 65  | an error has be|
0000d930  65 6e 20 66 6f 75 6e 64  20 64 75 72 69 6e 67 20  |en found during |
0000d940  63 6f 6d 70 69 6c 61 74  69 6f 6e 2e 0a 0a 8f 09  |compilation.....|
0000d950  42 79 20 73 65 6e 64 69  6e 67 20 61 6e 20 61 70  |By sending an ap|
0000d960  70 72 6f 70 72 69 61 74  65 20 6d 65 73 73 61 67  |propriate messag|
0000d970  65 20 28 3c 45 64 69 74  43 75 72 73 6f 72 3d 3e  |e (<EditCursor=>|
0000d980  4d 73 67 5f 34 35 64 38  35 3e 29 2c 20 74 68 65  |Msg_45d85>), the|
0000d990  20 63 6c 69 65 6e 74 20  63 61 6e 20 73 65 74 20  | client can set |
0000d9a0  61 20 73 65 6c 65 63 74  69 6f 6e 20 6f 72 20 63  |a selection or c|
0000d9b0  75 72 73 6f 72 20 70 6f  73 69 74 69 6f 6e 20 69  |ursor position i|
0000d9c0  6e 20 74 68 65 20 65 64  69 74 65 64 20 64 61 74  |n the edited dat|
0000d9d0  61 2e 20 46 6f 72 20 65  78 61 6d 70 6c 65 2c 20  |a. For example, |
0000d9e0  74 68 65 20 63 6f 6d 70  69 6c 65 72 20 6d 69 67  |the compiler mig|
0000d9f0  68 74 20 68 69 67 68 6c  69 67 68 74 20 74 68 65  |ht highlight the|
0000da00  20 6c 69 6e 65 20 6f 66  20 63 6f 64 65 20 63 6f  | line of code co|
0000da10  6e 74 61 69 6e 69 6e 67  20 74 68 65 20 65 72 72  |ntaining the err|
0000da20  6f 72 2e 0a 0a 8f 09 41  6e 6f 74 68 65 72 20 6d  |or.....Another m|
0000da30  65 73 73 61 67 65 20 28  3c 45 64 69 74 52 65 74  |essage (<EditRet|
0000da40  75 72 6e 3d 3e 4d 73 67  5f 34 35 64 38 32 3e 29  |urn=>Msg_45d82>)|
0000da50  20 6d 61 79 20 62 65 20  73 65 6e 74 20 62 79 20  | may be sent by |
0000da60  74 68 65 20 63 6c 69 65  6e 74 20 61 74 20 61 6e  |the client at an|
0000da70  79 20 74 69 6d 65 20 74  6f 20 72 65 71 75 65 73  |y time to reques|
0000da80  74 20 74 68 61 74 20 74  68 65 20 64 61 74 61 20  |t that the data |
0000da90  62 65 20 72 65 74 75 72  6e 65 64 2e 20 46 6f 72  |be returned. For|
0000daa0  20 65 78 61 6d 70 6c 65  2c 20 74 68 65 20 63 6f  | example, the co|
0000dab0  6d 70 69 6c 65 72 20 63  6f 75 6c 64 20 69 6e 63  |mpiler could inc|
0000dac0  6c 75 64 65 20 61 20 62  75 74 74 6f 6e 2f 6d 65  |lude a button/me|
0000dad0  6e 75 20 6f 70 74 69 6f  6e 20 73 6f 6d 65 77 68  |nu option somewh|
0000dae0  65 72 65 20 77 68 69 63  68 20 73 61 79 73 20 27  |ere which says '|
0000daf0  72 65 63 6f 6d 70 69 6c  65 27 2c 20 77 68 69 63  |recompile', whic|
0000db00  68 20 77 69 6c 6c 20 61  75 74 6f 6d 61 74 69 63  |h will automatic|
0000db10  61 6c 6c 79 20 72 65 74  72 69 65 76 65 20 74 68  |ally retrieve th|
0000db20  65 20 63 6f 64 65 20 62  65 69 6e 67 20 65 64 69  |e code being edi|
0000db30  74 65 64 20 61 6e 64 20  72 65 63 6f 6d 70 69 6c  |ted and recompil|
0000db40  65 20 69 74 2e 0a 00 00  44 41 54 41 c9 04 00 00  |e it....DATA....|
0000db50  45 78 74 65 72 6e 61 6c  20 45 64 69 74 20 65 64  |External Edit ed|
0000db60  69 74 6f 72 73 0a 54 68  65 20 65 64 69 74 6f 72  |itors.The editor|
0000db70  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 69 73 20  | application is |
0000db80  64 65 66 69 6e 65 64 20  61 73 20 74 68 61 74 20  |defined as that |
0000db90  77 68 69 63 68 20 61 63  63 65 70 74 73 20 65 64  |which accepts ed|
0000dba0  69 74 69 6e 67 20 73 65  73 73 69 6f 6e 20 6d 65  |iting session me|
0000dbb0  73 73 61 67 65 73 2c 20  69 65 20 74 68 61 74 20  |ssages, ie that |
0000dbc0  77 69 74 68 69 6e 20 77  68 69 63 68 20 74 68 65  |within which the|
0000dbd0  20 65 64 69 74 69 6e 67  20 6f 66 20 74 68 65 20  | editing of the |
0000dbe0  6f 62 6a 65 63 74 20 74  61 6b 65 73 20 70 6c 61  |object takes pla|
0000dbf0  63 65 2e 0a 0a 55 70 6f  6e 20 72 65 63 65 69 70  |ce...Upon receip|
0000dc00  74 20 6f 66 20 61 6e 20  65 78 74 65 72 6e 61 6c  |t of an external|
0000dc10  20 65 64 69 74 20 72 65  71 75 65 73 74 20 62 72  | edit request br|
0000dc20  6f 61 64 63 61 73 74 20  28 3c 45 64 69 74 52 71  |oadcast (<EditRq|
0000dc30  3d 3e 4d 73 67 5f 34 35  64 38 30 3e 29 2c 20 74  |=>Msg_45d80>), t|
0000dc40  68 65 20 65 64 69 74 6f  72 20 63 68 65 63 6b 73  |he editor checks|
0000dc50  20 74 68 65 20 3c 64 61  74 61 20 74 79 70 65 3d  | the <data type=|
0000dc60  3e 4d 73 67 5f 45 78 74  45 64 69 74 44 61 74 61  |>Msg_ExtEditData|
0000dc70  74 79 70 65 73 3e 2c 20  61 6e 64 20 69 66 20 69  |types>, and if i|
0000dc80  74 20 69 73 20 61 62 6c  65 20 74 6f 20 65 64 69  |t is able to edi|
0000dc90  74 20 74 68 65 20 64 61  74 61 2c 20 69 74 20 6f  |t the data, it o|
0000dca0  70 65 6e 73 20 61 20 73  75 69 74 61 62 6c 65 20  |pens a suitable |
0000dcb0  77 69 6e 64 6f 77 20 28  6f 6e 20 61 20 27 62 6c  |window (on a 'bl|
0000dcc0  61 6e 6b 27 20 64 61 74  61 66 69 6c 65 29 20 61  |ank' datafile) a|
0000dcd0  6e 64 20 72 65 70 6c 69  65 73 20 74 6f 20 74 68  |nd replies to th|
0000dce0  65 20 20 6d 65 73 73 61  67 65 20 28 77 69 74 68  |e  message (with|
0000dcf0  20 3c 45 64 69 74 41 63  6b 3d 3e 4d 73 67 5f 34  | <EditAck=>Msg_4|
0000dd00  35 64 38 31 3e 29 2e 20  0a 0a 49 74 20 77 69 6c  |5d81>). ..It wil|
0000dd10  6c 20 61 6c 6c 6f 77 20  74 68 65 20 75 73 65 72  |l allow the user|
0000dd20  20 74 6f 20 65 64 69 74  20 74 68 65 20 64 61 74  | to edit the dat|
0000dd30  61 20 28 75 6e 6c 65 73  73 20 74 68 65 20 72 65  |a (unless the re|
0000dd40  71 75 65 73 74 20 77 61  73 20 66 6f 72 20 72 65  |quest was for re|
0000dd50  61 64 2d 6f 6e 6c 79 20  64 61 74 61 29 2c 20 61  |ad-only data), a|
0000dd60  6e 64 20 63 61 6e 20 61  6c 73 6f 20 68 61 6e 64  |nd can also hand|
0000dd70  6c 65 20 73 6f 6d 65 20  65 78 74 72 61 20 66 75  |le some extra fu|
0000dd80  6e 63 74 69 6f 6e 73 3a  0a 0a 8f 20 49 66 20 61  |nctions:... If a|
0000dd90  20 64 61 74 61 20 74 72  61 6e 73 66 65 72 20 69  | data transfer i|
0000dda0  73 20 73 74 61 72 74 65  64 20 62 79 20 74 68 65  |s started by the|
0000ddb0  20 63 6c 69 65 6e 74 20  28 3c 45 64 69 74 44 61  | client (<EditDa|
0000ddc0  74 61 53 61 76 65 3d 3e  4d 73 67 5f 34 35 64 38  |taSave=>Msg_45d8|
0000ddd0  34 3e 29 2c 20 69 74 20  77 69 6c 6c 20 69 6e 73  |4>), it will ins|
0000dde0  65 72 74 20 74 68 65 20  6e 65 77 20 64 61 74 61  |ert the new data|
0000ddf0  20 20 69 6e 74 6f 20 74  68 65 20 45 78 74 45 64  |  into the ExtEd|
0000de00  69 74 20 64 61 74 61 2c  20 61 74 20 74 68 65 20  |it data, at the |
0000de10  63 75 72 72 65 6e 74 20  27 63 75 72 73 6f 72 27  |current 'cursor'|
0000de20  20 70 6f 73 69 74 69 6f  6e 20 28 75 73 75 61 6c  | position (usual|
0000de30  6c 79 20 74 68 65 20 65  6e 64 20 6f 66 20 74 68  |ly the end of th|
0000de40  65 20 66 69 6c 65 29 2e  0a 0a 8f 20 49 66 20 74  |e file).... If t|
0000de50  68 65 20 63 6c 69 65 6e  74 20 72 65 71 75 65 73  |he client reques|
0000de60  74 73 20 74 68 65 20 64  61 74 61 20 62 61 63 6b  |ts the data back|
0000de70  20 28 3c 45 64 69 74 52  65 74 75 72 6e 3d 3e 4d  | (<EditReturn=>M|
0000de80  73 67 5f 34 35 64 38 32  3e 29 2c 20 6f 72 20 69  |sg_45d82>), or i|
0000de90  66 20 74 68 65 20 75 73  65 72 20 63 68 6f 6f 73  |f the user choos|
0000dea0  65 73 20 74 68 65 20 27  73 61 76 65 27 20 6d 65  |es the 'save' me|
0000deb0  6e 75 20 6f 70 74 69 6f  6e 2c 20 61 20 72 65 76  |nu option, a rev|
0000dec0  65 72 73 65 20 64 61 74  61 20 74 72 61 6e 73 66  |erse data transf|
0000ded0  65 72 20 77 69 6c 6c 20  62 65 20 69 6e 69 74 69  |er will be initi|
0000dee0  61 74 65 64 20 62 61 63  6b 20 74 6f 20 74 68 65  |ated back to the|
0000def0  20 63 6c 69 65 6e 74 2e  0a 0a 8f 20 43 6c 6f 73  | client.... Clos|
0000df00  69 6e 67 20 74 68 65 20  45 78 74 45 64 69 74 20  |ing the ExtEdit |
0000df10  77 69 6e 64 6f 77 20 73  68 6f 75 6c 64 20 61 62  |window should ab|
0000df20  6f 72 74 20 74 68 65 20  74 72 61 6e 73 66 65 72  |ort the transfer|
0000df30  20 2f 77 69 74 68 6f 75  74 2f 20 72 65 74 75 72  | /without/ retur|
0000df40  6e 69 6e 67 20 74 68 65  20 64 61 74 61 20 74 6f  |ning the data to|
0000df50  20 74 68 65 20 63 6c 69  65 6e 74 2e 0a 0a 8f 20  | the client.... |
0000df60  49 66 20 74 68 65 20 63  6c 69 65 6e 74 20 72 65  |If the client re|
0000df70  71 75 65 73 74 20 61 20  6e 65 77 20 73 65 6c 65  |quest a new sele|
0000df80  63 74 69 6f 6e 20 74 6f  20 62 65 20 68 69 67 68  |ction to be high|
0000df90  6c 69 67 68 74 65 64 20  28 3c 45 64 69 74 43 75  |lighted (<EditCu|
0000dfa0  72 73 6f 72 3d 3e 4d 73  67 5f 34 35 64 38 35 3e  |rsor=>Msg_45d85>|
0000dfb0  29 2c 20 74 68 65 6e 20  74 68 65 20 65 64 69 74  |), then the edit|
0000dfc0  6f 72 20 73 68 6f 75 6c  64 20 6d 6f 76 65 20 74  |or should move t|
0000dfd0  6f 20 74 68 65 20 6c 6f  63 61 74 69 6f 6e 20 73  |o the location s|
0000dfe0  70 65 63 69 66 69 65 64  20 61 6e 64 20 64 69 73  |pecified and dis|
0000dff0  70 6c 61 79 20 74 68 65  20 68 69 67 6c 69 67 68  |play the higligh|
0000e000  74 69 6e 67 20 61 73 20  72 65 71 75 69 72 65 64  |ting as required|
0000e010  2e 00 00 00 44 41 54 41  9d 00 00 00 4a 6f 62 20  |....DATA....Job |
0000e020  48 61 6e 64 6c 65 0a 54  68 65 20 4a 6f 62 20 48  |Handle.The Job H|
0000e030  61 6e 64 6c 65 20 63 6f  6e 73 69 73 74 73 20 6f  |andle consists o|
0000e040  66 20 74 77 6f 20 31 36  20 62 69 74 20 76 61 6c  |f two 16 bit val|
0000e050  75 65 73 20 3a 0a 20 20  42 69 74 20 30 2d 31 35  |ues :.  Bit 0-15|
0000e060  09 3a 20 22 43 6c 69 65  6e 74 22 20 68 61 6e 64  |.: "Client" hand|
0000e070  6c 65 0a 20 20 42 69 74  20 31 36 2d 33 31 09 3a  |le.  Bit 16-31.:|
0000e080  20 22 45 64 69 74 6f 72  22 20 68 61 6e 64 6c 65  | "Editor" handle|
0000e090  0a 0a 42 6f 74 68 20 76  61 6c 75 65 73 20 73 68  |..Both values sh|
0000e0a0  6f 75 6c 64 20 62 65 20  6e 6f 6e 2d 7a 65 72 6f  |ould be non-zero|
0000e0b0  2e 00 00 00 44 41 54 41  0e 01 00 00 46 6c 61 67  |....DATA....Flag|
0000e0c0  20 57 6f 72 64 0a 42 69  74 09 4d 65 61 6e 69 6e  | Word.Bit.Meanin|
0000e0d0  67 20 77 68 65 6e 20 53  65 74 0a 23 4c 69 6e 65  |g when Set.#Line|
0000e0e0  0a 20 30 09 43 6f 6e 74  69 6e 75 6f 75 73 20 65  |. 0.Continuous e|
0000e0f0  64 69 74 69 6e 67 2e 20  44 6f 6e 27 74 20 63 6c  |diting. Don't cl|
0000e100  6f 73 65 20 61 66 74 65  72 20 73 61 76 65 2e 0a  |ose after save..|
0000e110  20 31 09 53 65 6c 65 63  74 69 6f 6e 2e 20 45 64  | 1.Selection. Ed|
0000e120  69 74 52 65 74 75 72 6e  20 3a 20 53 65 6e 64 20  |itReturn : Send |
0000e130  73 65 6c 65 63 74 69 6f  6e 20 6f 6e 6c 79 2e 0a  |selection only..|
0000e140  20 32 09 52 65 61 64 2d  4f 6e 6c 79 2e 0a 20 33  | 2.Read-Only.. 3|
0000e150  09 49 6d 6d 65 64 69 61  74 65 20 50 6c 61 79 62  |.Immediate Playb|
0000e160  61 63 6b 2e 20 22 50 6c  61 79 20 73 61 6d 70 6c  |ack. "Play sampl|
0000e170  65 20 26 20 71 75 69 74  22 0a 20 34 09 41 64 6a  |e & quit". 4.Adj|
0000e180  75 73 74 20 73 65 6c 65  63 74 69 6f 6e 2e 0a 20  |ust selection.. |
0000e190  0a 42 69 74 73 20 35 20  74 6f 20 33 31 20 61 72  |.Bits 5 to 31 ar|
0000e1a0  65 20 72 65 73 65 72 76  65 64 20 61 6e 64 20 73  |e reserved and s|
0000e1b0  68 6f 75 6c 64 20 62 65  20 73 65 74 20 74 6f 20  |hould be set to |
0000e1c0  30 2e 00 00 44 41 54 41  20 02 00 00 55 6e 69 74  |0...DATA ...Unit|
0000e1d0  20 6d 65 61 6e 69 6e 67  73 0a 23 57 72 61 70 20  | meanings.#Wrap |
0000e1e0  4f 66 66 0a 46 69 6c 65  74 79 70 65 09 09 09 55  |Off.Filetype...U|
0000e1f0  6e 69 74 20 72 65 70 72  65 73 65 6e 74 73 0a 23  |nit represents.#|
0000e200  4c 69 6e 65 0a 3c 54 65  78 74 3d 3e 46 69 6c 65  |Line.<Text=>File|
0000e210  74 79 70 65 73 3a 46 46  46 3e 09 09 43 68 61 72  |types:FFF>..Char|
0000e220  61 63 74 65 72 0a 3c 43  6f 6d 6d 61 6e 64 3d 3e  |acter.<Command=>|
0000e230  46 69 6c 65 74 79 70 65  73 3a 46 46 45 3e 09 43  |Filetypes:FFE>.C|
0000e240  68 61 72 61 63 74 65 72  0a 3c 54 61 73 6b 4f 62  |haracter.<TaskOb|
0000e250  65 79 3d 3e 46 69 6c 65  74 79 70 65 73 3a 46 44  |ey=>Filetypes:FD|
0000e260  37 3e 09 43 68 61 72 61  63 74 65 72 0a 3c 54 61  |7>.Character.<Ta|
0000e270  73 6b 45 78 65 63 3d 3e  46 69 6c 65 74 79 70 65  |skExec=>Filetype|
0000e280  73 3a 46 44 36 3e 09 43  68 61 72 61 63 74 65 72  |s:FD6>.Character|
0000e290  0a 3c 4f 62 65 79 3d 3e  46 69 6c 65 74 79 70 65  |.<Obey=>Filetype|
0000e2a0  73 3a 46 45 42 3e 09 09  43 68 61 72 61 63 74 65  |s:FEB>..Characte|
0000e2b0  72 0a 3c 42 61 73 69 63  54 78 74 3d 3e 46 69 6c  |r.<BasicTxt=>Fil|
0000e2c0  65 74 79 70 65 73 3a 46  44 31 3e 09 43 68 61 72  |etypes:FD1>.Char|
0000e2d0  61 63 74 65 72 0a 3c 44  61 74 61 3d 3e 46 69 6c  |acter.<Data=>Fil|
0000e2e0  65 74 79 70 65 73 3a 46  46 44 3e 09 09 42 79 74  |etypes:FFD>..Byt|
0000e2f0  65 20 6f 66 66 73 65 74  0a 3c 42 41 53 49 43 3d  |e offset.<BASIC=|
0000e300  3e 46 69 6c 65 74 79 70  65 73 3a 46 46 42 3e 09  |>Filetypes:FFB>.|
0000e310  09 42 79 74 65 20 6f 66  66 73 65 74 0a 3c 53 70  |.Byte offset.<Sp|
0000e320  72 69 74 65 3d 3e 46 69  6c 65 74 79 70 65 73 3a  |rite=>Filetypes:|
0000e330  46 46 39 3e 09 09 53 70  72 69 74 65 20 6e 75 6d  |FF9>..Sprite num|
0000e340  62 65 72 0a 3c 50 61 6c  65 74 74 65 3d 3e 46 69  |ber.<Palette=>Fi|
0000e350  6c 65 74 79 70 65 73 3a  46 45 44 3e 09 43 6f 6c  |letypes:FED>.Col|
0000e360  6f 75 72 20 6e 75 6d 62  65 72 20 61 73 20 69 6e  |our number as in|
0000e370  64 65 78 20 69 6e 74 6f  20 73 74 61 6e 64 61 72  |dex into standar|
0000e380  64 20 66 69 6c 65 20 66  6f 72 6d 61 74 0a 3c 44  |d file format.<D|
0000e390  72 61 77 46 69 6c 65 3d  3e 46 69 6c 65 74 79 70  |rawFile=>Filetyp|
0000e3a0  65 73 3a 41 46 46 3e 09  44 72 61 77 20 6f 62 6a  |es:AFF>.Draw obj|
0000e3b0  65 63 74 0a 3c 41 52 4d  6f 76 69 65 3d 3e 46 69  |ect.<ARMovie=>Fi|
0000e3c0  6c 65 74 79 70 65 73 3a  41 45 37 3e 09 41 6e 69  |letypes:AE7>.Ani|
0000e3d0  6d 61 74 69 6f 6e 20 66  72 61 6d 65 20 6e 75 6d  |mation frame num|
0000e3e0  62 65 72 0a 44 41 54 41  63 01 00 00 44 61 74 61  |ber.DATAc...Data|
0000e3f0  20 74 79 70 65 20 77 6f  72 64 0a 54 68 65 20 44  | type word.The D|
0000e400  61 74 61 20 74 79 70 65  20 77 6f 72 64 20 63 6f  |ata type word co|
0000e410  6e 73 69 73 74 73 20 6f  66 20 74 77 6f 20 31 36  |nsists of two 16|
0000e420  20 62 69 74 20 76 61 6c  75 65 73 20 3a 0a 20 20  | bit values :.  |
0000e430  42 69 74 20 30 2d 31 35  09 3a 20 53 74 61 6e 64  |Bit 0-15.: Stand|
0000e440  61 72 64 20 41 63 6f 72  6e 20 3c 46 69 6c 65 74  |ard Acorn <Filet|
0000e450  79 70 65 3d 3e 46 69 6c  65 74 79 70 65 73 3a 21  |ype=>Filetypes:!|
0000e460  52 6f 6f 74 3e 0a 20 20  42 69 74 20 31 36 2d 33  |Root>.  Bit 16-3|
0000e470  31 09 3a 20 22 3c 53 75  62 74 79 70 65 3d 3e 4d  |1.: "<Subtype=>M|
0000e480  73 67 5f 45 78 74 45 64  69 74 53 75 62 74 79 70  |sg_ExtEditSubtyp|
0000e490  65 73 3e 22 0a 0a 53 75  62 74 79 70 65 20 30 20  |es>"..Subtype 0 |
0000e4a0  6d 65 61 6e 73 20 74 68  61 74 20 74 68 65 20 66  |means that the f|
0000e4b0  69 6c 65 74 79 70 65 20  73 61 79 73 20 69 74 20  |iletype says it |
0000e4c0  61 6c 6c 2c 20 77 68 69  6c 65 20 73 75 62 74 79  |all, while subty|
0000e4d0  70 65 73 20 26 30 30 30  31 20 74 6f 20 26 30 34  |pes &0001 to &04|
0000e4e0  46 46 20 61 72 65 20 72  65 73 65 72 76 65 64 20  |FF are reserved |
0000e4f0  66 6f 72 20 74 68 65 20  75 73 65 72 2e 20 41 70  |for the user. Ap|
0000e500  70 6c 69 63 61 74 69 6f  6e 73 20 66 6f 72 20 67  |plications for g|
0000e510  65 6e 65 72 61 6c 20 64  69 73 74 72 69 62 75 74  |eneral distribut|
0000e520  69 6f 6e 20 73 68 6f 75  6c 64 20 72 65 71 75 65  |ion should reque|
0000e530  73 74 20 61 20 70 72 6f  70 65 72 20 61 6c 6c 6f  |st a proper allo|
0000e540  63 61 74 69 6f 6e 2e 00  44 41 54 41 f7 00 00 00  |cation..DATA....|
0000e550  45 78 74 65 72 6e 61 6c  20 45 64 69 74 20 73 75  |External Edit su|
0000e560  62 74 79 70 65 73 0a 54  68 65 20 6f 66 66 69 63  |btypes.The offic|
0000e570  69 61 6c 20 61 6c 6c 6f  63 61 74 69 6f 6e 20 6f  |ial allocation o|
0000e580  66 20 73 75 62 74 79 70  65 73 20 68 61 73 20 79  |f subtypes has y|
0000e590  65 74 20 74 6f 20 62 65  20 64 65 63 69 64 65 64  |et to be decided|
0000e5a0  2c 20 62 75 74 20 61 73  20 6f 6e 6c 79 20 6f 6e  |, but as only on|
0000e5b0  65 20 73 75 62 74 79 70  65 20 69 73 20 6b 6e 6f  |e subtype is kno|
0000e5c0  77 20 74 6f 20 74 68 65  20 61 75 74 68 6f 72 2c  |w to the author,|
0000e5d0  20 74 68 69 73 20 69 73  20 6e 6f 74 20 72 65 61  | this is not rea|
0000e5e0  6c 6c 79 20 61 20 70 72  6f 62 6c 65 6d 2e 0a 0a  |lly a problem...|
0000e5f0  44 61 74 61 74 79 70 65  09 46 69 6c 65 20 63 6f  |Datatype.File co|
0000e600  6e 74 65 6e 74 73 09 09  4f 77 6e 65 72 0a 23 4c  |ntents..Owner.#L|
0000e610  69 6e 65 0a 30 31 32 43  30 46 46 46 09 44 4a 46  |ine.012C0FFF.DJF|
0000e620  20 74 75 6e 65 20 28 44  4a 46 2d 4a 52 46 29 09  | tune (DJF-JRF).|
0000e630  4a 75 73 74 69 6e 20 46  6c 65 74 63 68 65 72 00  |Justin Fletcher.|
0000e640  44 41 54 41 03 01 00 00  45 78 74 65 72 6e 61 6c  |DATA....External|
0000e650  20 45 64 69 74 20 70 72  6f 74 6f 63 6f 6c 20 6d  | Edit protocol m|
0000e660  6f 64 65 72 61 74 6f 72  0a 43 75 72 72 65 6e 74  |oderator.Current|
0000e670  6c 79 2c 20 4a 61 73 6f  6e 20 57 69 6c 6c 69 61  |ly, Jason Willia|
0000e680  6d 73 20 69 73 20 77 6f  72 6b 69 6e 67 20 66 6f  |ms is working fo|
0000e690  72 20 43 6f 6d 70 75 74  65 72 20 43 6f 6e 63 65  |r Computer Conce|
0000e6a0  70 74 73 20 61 6e 64 20  68 61 73 20 69 6d 70 6c  |pts and has impl|
0000e6b0  69 65 64 20 74 68 61 74  20 68 65 20 6e 6f 20 6c  |ied that he no l|
0000e6c0  6f 6e 67 65 72 20 77 69  73 68 65 73 20 74 6f 20  |onger wishes to |
0000e6d0  73 75 70 70 6f 72 74 20  74 68 65 20 45 78 74 65  |support the Exte|
0000e6e0  72 6e 61 6c 20 45 64 69  74 20 70 72 6f 74 6f 63  |rnal Edit protoc|
0000e6f0  6f 6c 2e 20 54 68 75 73  2c 20 74 68 65 20 70 72  |ol. Thus, the pr|
0000e700  6f 74 6f 63 6f 6c 20 68  61 73 20 6e 6f 74 20 61  |otocol has not a|
0000e710  64 76 61 6e 63 65 64 20  73 69 6e 63 65 20 6d 75  |dvanced since mu|
0000e720  63 68 20 73 69 6e 63 65  20 69 74 73 20 63 72 65  |ch since its cre|
0000e730  61 74 69 6f 6e 20 34 20  79 65 61 72 73 20 61 67  |ation 4 years ag|
0000e740  6f 2e 0a 00 44 41 54 41  f5 02 00 00 45 78 65 72  |o...DATA....Exer|
0000e750  6e 61 6c 20 45 64 69 74  20 56 61 72 69 61 62 6c  |nal Edit Variabl|
0000e760  65 0a 45 78 74 65 72 6e  61 6c 20 65 64 69 74 6f  |e.External edito|
0000e770  72 73 20 75 73 65 20 61  20 76 61 72 69 61 62 6c  |rs use a variabl|
0000e780  65 20 73 69 6d 69 6c 61  72 20 74 6f 20 74 68 65  |e similar to the|
0000e790  20 41 6c 69 61 73 24 40  52 75 6e 54 79 70 65 5f  | Alias$@RunType_|
0000e7a0  78 78 78 20 76 61 72 69  61 62 6c 65 20 77 68 69  |xxx variable whi|
0000e7b0  63 68 20 69 73 20 63 75  72 72 65 6e 74 6c 79 20  |ch is currently |
0000e7c0  69 6e 20 75 73 65 20 66  6f 72 20 75 6e 6b 6e 6f  |in use for unkno|
0000e7d0  77 6e 20 66 69 6c 65 20  72 75 6e 20 72 65 71 75  |wn file run requ|
0000e7e0  65 73 74 73 2e 0a 0a 41  20 63 6c 69 65 6e 74 20  |ests...A client |
0000e7f0  77 69 73 68 69 6e 67 20  74 6f 20 72 75 6e 20 61  |wishing to run a|
0000e800  6e 20 65 64 69 74 6f 72  20 63 61 6e 20 74 68 65  |n editor can the|
0000e810  6e 20 65 78 65 63 75 74  65 20 74 68 65 20 63 6f  |n execute the co|
0000e820  6d 6d 61 6e 64 20 68 65  6c 64 20 69 6e 20 74 68  |mmand held in th|
0000e830  65 20 6d 6f 73 74 20 61  70 70 72 6f 70 72 69 61  |e most appropria|
0000e840  74 65 20 20 41 6c 69 61  73 24 40 45 64 69 74 54  |te  Alias$@EditT|
0000e850  79 70 65 5f 3f 3f 3f 20  73 79 73 74 65 6d 20 76  |ype_??? system v|
0000e860  61 72 69 61 62 6c 65 2c  20 61 6e 64 20 74 68 65  |ariable, and the|
0000e870  6e 20 73 74 61 72 74 20  62 72 6f 61 64 63 61 73  |n start broadcas|
0000e880  74 69 6e 67 20 45 64 69  74 52 71 20 6d 65 73 73  |ting EditRq mess|
0000e890  61 67 65 73 20 61 67 61  69 6e 2e 0a 0a 49 66 20  |ages again...If |
0000e8a0  6e 6f 20 41 6c 69 61 73  24 40 45 64 69 74 54 79  |no Alias$@EditTy|
0000e8b0  70 65 5f 3f 3f 3f 20 76  61 72 69 61 62 6c 65 20  |pe_??? variable |
0000e8c0  69 73 20 73 65 74 2c 20  6f 72 20 69 66 20 69 74  |is set, or if it|
0000e8d0  20 66 61 69 6c 73 20 66  6f 72 20 61 6e 79 20 72  | fails for any r|
0000e8e0  65 61 73 6f 6e 20 74 6f  20 73 75 63 63 65 73 73  |eason to success|
0000e8f0  66 75 6c 6c 79 20 6c 61  75 6e 63 68 20 61 6e 20  |fully launch an |
0000e900  65 64 69 74 6f 72 20 28  79 6f 75 72 20 72 65 74  |editor (your ret|
0000e910  72 69 65 64 20 45 64 69  74 52 71 73 20 77 69 6c  |ried EditRqs wil|
0000e920  6c 20 66 61 69 6c 29 2c  20 74 68 65 6e 20 79 6f  |l fail), then yo|
0000e930  75 20 73 68 6f 75 6c 64  20 67 69 76 65 20 75 70  |u should give up|
0000e940  20 61 6e 64 20 72 65 70  6f 72 74 20 74 68 65 20  | and report the |
0000e950  70 72 6f 62 6c 65 6d 20  74 6f 20 74 68 65 20 75  |problem to the u|
0000e960  73 65 72 2e 0a 0a 49 74  20 69 73 20 69 6d 70 6f  |ser...It is impo|
0000e970  72 74 61 6e 74 20 74 68  61 74 20 74 68 69 73 20  |rtant that this |
0000e980  76 61 72 69 61 62 6c 65  20 69 73 20 69 6e 69 74  |variable is init|
0000e990  69 61 6c 69 73 65 64 20  69 6e 20 74 68 65 20 21  |ialised in the !|
0000e9a0  42 6f 6f 74 20 66 69 6c  65 20 6f 66 20 61 6e 20  |Boot file of an |
0000e9b0  61 70 70 6c 69 63 61 74  69 6f 6e 2c 20 66 6f 72  |application, for|
0000e9c0  20 65 78 61 6d 70 6c 65  20 3a 0a 23 66 43 6f 64  | example :.#fCod|
0000e9d0  65 0a 20 20 20 53 65 74  20 41 6c 69 61 73 24 40  |e.   Set Alias$@|
0000e9e0  52 75 6e 54 79 70 65 5f  46 46 46 20 52 75 6e 20  |RunType_FFF Run |
0000e9f0  5c 3c 4f 62 65 79 24 44  69 72 3e 2e 21 52 75 6e  |\<Obey$Dir>.!Run|
0000ea00  20 25 25 2a 30 0a 20 20  20 53 65 74 20 41 6c 69  | %%*0.   Set Ali|
0000ea10  61 73 24 40 45 64 69 74  54 79 70 65 5f 46 46 46  |as$@EditType_FFF|
0000ea20  20 52 75 6e 20 5c 3c 4f  62 65 79 24 44 69 72 3e  | Run \<Obey$Dir>|
0000ea30  2e 21 52 75 6e 0a 23 66  0a 00 00 00 44 41 54 41  |.!Run.#f....DATA|
0000ea40  38 01 00 00 4d 65 73 73  61 67 65 5f 49 52 43 53  |8...Message_IRCS|
0000ea50  65 6e 64 44 61 74 61 20  20 28 26 44 41 42 30 30  |endData  (&DAB00|
0000ea60  29 0a 23 50 61 72 65 6e  74 20 4d 53 47 5f 0a 2b  |).#Parent MSG_.+|
0000ea70  20 32 30 09 50 6f 69 6e  74 65 72 20 74 6f 20 63  | 20.Pointer to c|
0000ea80  6f 6d 6d 61 6e 64 20 74  6f 20 73 65 6e 64 20 28  |ommand to send (|
0000ea90  7a 65 72 6f 20 74 65 72  6d 69 6e 61 74 65 64 29  |zero terminated)|
0000eaa0  0a 0a 54 68 69 73 20 6d  65 73 73 61 67 65 20 69  |..This message i|
0000eab0  73 20 73 68 6f 75 6c 64  20 62 65 20 62 72 6f 61  |s should be broa|
0000eac0  64 63 61 73 74 20 74 6f  20 73 65 6e 64 20 61 20  |dcast to send a |
0000ead0  63 6f 6d 6d 61 6e 64 20  64 69 72 65 63 74 20 74  |command direct t|
0000eae0  6f 20 49 52 43 6c 69 65  6e 74 20 74 6f 20 62 65  |o IRClient to be|
0000eaf0  20 65 78 65 63 75 74 65  64 20 61 73 20 69 66 20  | executed as if |
0000eb00  69 74 20 77 65 72 65 20  74 79 70 65 64 20 69 6e  |it were typed in|
0000eb10  20 74 68 65 20 69 6e 70  75 74 20 62 6f 78 2e 0a  | the input box..|
0000eb20  0a 4e 6f 74 65 3a 20 54  68 69 73 20 6d 61 79 20  |.Note: This may |
0000eb30  6e 6f 74 20 62 65 20 61  6e 20 49 52 43 20 77 69  |not be an IRC wi|
0000eb40  6e 64 6f 77 20 61 6e 64  20 63 61 72 65 20 73 68  |ndow and care sh|
0000eb50  6f 75 6c 64 20 62 65 20  74 61 6b 65 6e 20 77 68  |ould be taken wh|
0000eb60  65 6e 20 75 73 69 6e 67  20 74 68 69 73 20 63 61  |en using this ca|
0000eb70  6c 6c 2e 0a 44 41 54 41  29 01 00 00 4d 65 73 73  |ll..DATA)...Mess|
0000eb80  61 67 65 5f 49 52 43 53  65 6e 64 52 61 77 44 61  |age_IRCSendRawDa|
0000eb90  74 61 20 20 28 26 44 41  42 30 31 29 0a 23 50 61  |ta  (&DAB01).#Pa|
0000eba0  72 65 6e 74 20 4d 73 67  5f 0a 2b 20 32 30 09 50  |rent Msg_.+ 20.P|
0000ebb0  6f 69 6e 74 65 72 20 74  6f 20 64 61 74 61 20 74  |ointer to data t|
0000ebc0  6f 20 73 65 6e 64 20 28  7a 65 72 6f 20 74 65 72  |o send (zero ter|
0000ebd0  6d 69 6e 61 74 65 64 29  0a 0a 54 68 69 73 20 6d  |minated)..This m|
0000ebe0  65 73 73 61 67 65 20 73  68 6f 75 6c 64 20 62 65  |essage should be|
0000ebf0  20 62 72 6f 61 64 63 61  73 74 20 74 6f 20 73 65  | broadcast to se|
0000ec00  6e 64 20 72 61 77 20 64  61 74 61 20 64 69 72 65  |nd raw data dire|
0000ec10  63 74 20 74 6f 20 74 68  65 20 73 65 72 76 65 72  |ct to the server|
0000ec20  2e 20 54 68 69 73 20 77  69 6c 6c 20 70 72 6f 62  |. This will prob|
0000ec30  61 62 6c 79 20 62 79 70  61 73 73 20 2f 61 6c 6c  |ably bypass /all|
0000ec40  2f 20 6f 66 20 74 68 65  20 69 6e 74 65 72 6e 61  |/ of the interna|
0000ec50  6c 20 70 72 6f 63 65 73  73 69 6e 67 20 77 68 69  |l processing whi|
0000ec60  63 68 20 74 68 65 20 73  63 72 69 70 74 73 20 61  |ch the scripts a|
0000ec70  70 70 6c 79 20 74 6f 20  69 74 73 20 6f 77 6e 20  |pply to its own |
0000ec80  6f 75 74 70 75 74 2c 20  62 75 74 20 6d 61 79 20  |output, but may |
0000ec90  62 65 20 62 75 66 66 65  72 65 64 2e 0a 00 00 00  |be buffered.....|
0000eca0  44 41 54 41 47 01 00 00  4d 65 73 73 61 67 65 5f  |DATAG...Message_|
0000ecb0  44 44 45 54 6f 6f 6c 49  6e 66 6f 20 20 28 26 38  |DDEToolInfo  (&8|
0000ecc0  31 34 30 30 29 0a 23 50  61 72 65 6e 74 20 4d 73  |1400).#Parent Ms|
0000ecd0  67 5f 0a 2b 20 32 30 09  68 61 6e 64 6c 65 20 61  |g_.+ 20.handle a|
0000ece0  73 20 70 61 73 73 65 64  20 74 6f 20 73 65 74 75  |s passed to setu|
0000ecf0  70 20 70 72 6f 67 72 61  6d 20 28 70 61 72 61 6d  |p program (param|
0000ed00  65 74 65 72 20 33 29 0a  2b 20 32 34 2d 33 35 09  |eter 3).+ 24-35.|
0000ed10  70 72 6f 67 72 61 6d 20  6e 61 6d 65 20 28 70 61  |program name (pa|
0000ed20  72 61 6d 65 74 65 72 20  30 29 2c 20 7a 65 72 6f  |rameter 0), zero|
0000ed30  20 74 65 72 6d 69 6e 61  74 65 64 0a 2b 20 33 36  | terminated.+ 36|
0000ed40  09 63 6f 6d 6d 61 6e 64  20 6c 69 6e 65 20 6f 70  |.command line op|
0000ed50  74 69 6f 6e 73 20 74 6f  20 75 73 65 2c 20 7a 65  |tions to use, ze|
0000ed60  72 6f 20 74 65 72 6d 69  6e 61 74 65 64 0a 0a 54  |ro terminated..T|
0000ed70  68 69 73 20 6d 65 73 73  61 67 65 20 69 73 20 73  |his message is s|
0000ed80  65 6e 74 20 62 79 20 44  44 45 20 61 70 70 6c 69  |ent by DDE appli|
0000ed90  63 61 74 69 6f 6e 73 20  77 68 65 6e 20 74 68 65  |cations when the|
0000eda0  69 72 20 6f 70 74 69 6f  6e 73 20 61 73 20 75 73  |ir options as us|
0000edb0  65 64 20 69 6e 20 74 68  65 20 63 6f 6d 6d 61 6e  |ed in the comman|
0000edc0  64 20 6c 69 6e 65 20 77  68 65 6e 20 6c 61 75 6e  |d line when laun|
0000edd0  63 68 65 64 20 68 61 73  20 62 65 65 6e 20 63 68  |ched has been ch|
0000ede0  61 6e 67 65 64 2e 0a 00  44 41 54 41 c9 08 00 00  |anged...DATA....|
0000edf0  4e 65 77 73 42 61 73 65  5f 43 6f 6d 6d 61 6e 64  |NewsBase_Command|
0000ee00  20 28 26 38 33 35 38 30  29 0a 2b 32 30 09 3c 43  | (&83580).+20.<C|
0000ee10  6f 6d 6d 61 6e 64 20 63  6f 64 65 3d 3e 2e 63 6f  |ommand code=>.co|
0000ee20  64 65 73 3e 20 2b 20 52  65 66 65 72 65 6e 63 65  |des> + Reference|
0000ee30  20 6e 75 6d 62 65 72 0a  09 72 65 73 74 20 6f 66  | number..rest of|
0000ee40  20 62 6c 6f 63 6b 20 61  73 20 64 65 66 69 6e 65  | block as define|
0000ee50  64 20 62 79 20 63 6f 64  65 0a 0a 54 68 65 20 63  |d by code..The c|
0000ee60  6f 6d 6d 61 6e 64 20 63  6f 64 65 20 69 73 20 6f  |ommand code is o|
0000ee70  6e 65 20 31 36 2d 62 69  74 20 66 69 65 6c 64 73  |ne 16-bit fields|
0000ee80  2c 20 61 6e 64 20 74 68  65 20 72 65 66 65 72 65  |, and the refere|
0000ee90  6e 63 65 20 6e 75 6d 62  65 72 20 69 73 20 74 68  |nce number is th|
0000eea0  65 20 74 6f 70 20 31 36  20 62 69 74 73 20 28 74  |e top 16 bits (t|
0000eeb0  6f 20 62 65 20 73 75 70  70 6c 69 65 64 20 62 79  |o be supplied by|
0000eec0  20 74 68 65 20 63 6c 69  65 6e 74 20 61 70 70 6c  | the client appl|
0000eed0  69 63 61 74 69 6f 6e 29  2e 20 54 68 65 20 72 65  |ication). The re|
0000eee0  66 65 72 65 6e 63 65 20  77 69 6c 6c 20 62 65 20  |ference will be |
0000eef0  70 72 65 73 65 72 76 65  64 20 62 79 20 4e 65 77  |preserved by New|
0000ef00  73 42 61 73 65 20 69 6e  20 72 65 70 6c 69 65 73  |sBase in replies|
0000ef10  2e 20 54 68 69 73 20 70  65 72 6d 69 74 73 20 6f  |. This permits o|
0000ef20  76 65 72 6c 61 70 70 69  6e 67 20 63 6f 6d 6d 61  |verlapping comma|
0000ef30  6e 64 2d 72 65 70 6c 79  20 73 65 71 75 65 6e 63  |nd-reply sequenc|
0000ef40  65 73 20 69 73 73 75 65  64 20 62 79 20 61 20 63  |es issued by a c|
0000ef50  6c 69 65 6e 74 20 74 6f  20 62 65 20 69 64 65 6e  |lient to be iden|
0000ef60  74 69 66 69 65 64 20 61  6e 64 20 66 6f 6c 6c 6f  |tified and follo|
0000ef70  77 65 64 2e 0a 23 53 75  62 70 61 67 65 20 63 6f  |wed..#Subpage co|
0000ef80  64 65 73 0a 4e 65 77 73  42 61 73 65 20 63 6f 6d  |des.NewsBase com|
0000ef90  6d 61 6e 64 20 63 6f 64  65 73 0a 23 57 72 61 70  |mand codes.#Wrap|
0000efa0  20 4f 66 66 0a 47 65 6e  65 72 61 6c 20 50 75 72  | Off.General Pur|
0000efb0  70 6f 73 65 20 43 6f 6d  6d 61 6e 64 73 0a 23 49  |pose Commands.#I|
0000efc0  6e 64 65 6e 74 20 32 0a  30 09 3c 4e 65 77 73 42  |ndent 2.0.<NewsB|
0000efd0  61 73 65 5f 53 74 61 72  74 55 70 3d 3e 4d 73 67  |ase_StartUp=>Msg|
0000efe0  5f 4e 42 5f 43 6f 6d 30  3e 0a 31 30 09 3c 4e 65  |_NB_Com0>.10.<Ne|
0000eff0  77 73 42 61 73 65 5f 53  68 75 74 44 6f 77 6e 3d  |wsBase_ShutDown=|
0000f000  3e 4d 73 67 5f 4e 42 5f  43 6f 6d 31 30 3e 0a 32  |>Msg_NB_Com10>.2|
0000f010  30 09 3c 4e 65 77 73 42  61 73 65 5f 53 65 74 55  |0.<NewsBase_SetU|
0000f020  73 65 72 3d 3e 4d 73 67  5f 4e 42 5f 43 6f 6d 32  |ser=>Msg_NB_Com2|
0000f030  30 3e 0a 33 30 09 3c 4e  65 77 73 42 61 73 65 5f  |0>.30.<NewsBase_|
0000f040  53 69 74 65 49 6e 66 6f  3d 3e 4d 73 67 5f 4e 42  |SiteInfo=>Msg_NB|
0000f050  5f 43 6f 6d 33 30 3e 0a  34 30 09 3c 4e 65 77 73  |_Com30>.40.<News|
0000f060  42 61 73 65 5f 53 65 74  53 69 74 65 49 6e 66 6f  |Base_SetSiteInfo|
0000f070  3d 3e 4d 73 67 5f 4e 42  5f 43 6f 6d 34 30 3e 0a  |=>Msg_NB_Com40>.|
0000f080  23 49 6e 64 65 6e 74 0a  0a 4e 65 77 73 67 72 6f  |#Indent..Newsgro|
0000f090  75 70 20 6f 72 69 65 6e  74 65 64 20 63 6f 6d 6d  |up oriented comm|
0000f0a0  61 6e 64 73 0a 23 49 6e  64 65 6e 74 20 32 0a 31  |ands.#Indent 2.1|
0000f0b0  30 30 09 3c 4e 65 77 73  42 61 73 65 5f 4c 69 73  |00.<NewsBase_Lis|
0000f0c0  74 47 72 6f 75 70 73 3d  3e 4d 73 67 5f 4e 42 5f  |tGroups=>Msg_NB_|
0000f0d0  43 6f 6d 31 30 30 3e 0a  31 31 30 09 3c 4e 65 77  |Com100>.110.<New|
0000f0e0  73 42 61 73 65 5f 4e 65  77 47 72 6f 75 70 73 3d  |sBase_NewGroups=|
0000f0f0  3e 4d 73 67 5f 4e 42 5f  43 6f 6d 31 31 30 3e 0a  |>Msg_NB_Com110>.|
0000f100  31 32 30 09 3c 4e 65 77  73 42 61 73 65 5f 41 64  |120.<NewsBase_Ad|
0000f110  64 47 72 6f 75 70 3d 3e  4d 73 67 5f 4e 42 5f 43  |dGroup=>Msg_NB_C|
0000f120  6f 6d 31 32 30 3e 0a 31  33 30 09 3c 4e 65 77 73  |om120>.130.<News|
0000f130  42 61 73 65 5f 52 65 6d  6f 76 65 47 72 6f 75 70  |Base_RemoveGroup|
0000f140  3d 3e 4d 73 67 5f 4e 42  5f 43 6f 6d 31 33 30 3e  |=>Msg_NB_Com130>|
0000f150  0a 31 34 30 09 3c 4e 65  77 73 42 61 73 65 5f 45  |.140.<NewsBase_E|
0000f160  78 70 69 72 65 47 72 6f  75 70 3d 3e 4d 73 67 5f  |xpireGroup=>Msg_|
0000f170  4e 42 5f 43 6f 6d 31 34  30 3e 0a 31 35 30 09 3c  |NB_Com140>.150.<|
0000f180  4e 65 77 73 42 61 73 65  5f 43 72 65 61 74 65 46  |NewsBase_CreateF|
0000f190  6f 6c 64 65 72 3d 3e 4d  73 67 5f 4e 42 5f 43 6f  |older=>Msg_NB_Co|
0000f1a0  6d 31 35 30 3e 0a 23 49  6e 64 65 6e 74 0a 0a 41  |m150>.#Indent..A|
0000f1b0  72 74 69 63 6c 65 20 6f  72 69 65 6e 74 65 64 20  |rticle oriented |
0000f1c0  63 6f 6d 6d 61 6e 64 73  0a 23 49 6e 64 65 6e 74  |commands.#Indent|
0000f1d0  20 32 0a 32 30 30 09 3c  4e 65 77 73 42 61 73 65  | 2.200.<NewsBase|
0000f1e0  5f 4c 69 73 74 41 72 74  73 3d 3e 4d 73 67 5f 4e  |_ListArts=>Msg_N|
0000f1f0  42 5f 43 6f 6d 32 30 30  3e 0a 32 31 30 09 3c 4e  |B_Com200>.210.<N|
0000f200  65 77 73 42 61 73 65 5f  4c 69 73 74 41 72 74 73  |ewsBase_ListArts|
0000f210  49 6e 66 6f 3d 3e 4d 73  67 5f 4e 42 5f 43 6f 6d  |Info=>Msg_NB_Com|
0000f220  32 31 30 3e 0a 32 32 30  09 3c 4e 65 77 73 42 61  |210>.220.<NewsBa|
0000f230  73 65 5f 47 65 74 41 72  74 69 63 6c 65 3d 3e 4d  |se_GetArticle=>M|
0000f240  73 67 5f 4e 42 5f 43 6f  6d 32 32 30 3e 0a 32 33  |sg_NB_Com220>.23|
0000f250  30 09 3c 4e 65 77 73 42  61 73 65 5f 4c 6f 63 6b  |0.<NewsBase_Lock|
0000f260  41 72 74 69 63 6c 65 3d  3e 4d 73 67 5f 4e 42 5f  |Article=>Msg_NB_|
0000f270  43 6f 6d 32 33 30 3e 0a  32 34 30 09 3c 4e 65 77  |Com230>.240.<New|
0000f280  73 42 61 73 65 5f 55 6e  4c 6f 63 6b 41 72 74 69  |sBase_UnLockArti|
0000f290  63 6c 65 3d 3e 4d 73 67  5f 4e 42 5f 43 6f 6d 32  |cle=>Msg_NB_Com2|
0000f2a0  34 30 3e 0a 32 35 30 09  3c 4e 65 77 73 42 61 73  |40>.250.<NewsBas|
0000f2b0  65 5f 44 65 6c 65 74 65  41 72 74 69 63 6c 65 3d  |e_DeleteArticle=|
0000f2c0  3e 4d 73 67 5f 4e 42 5f  43 6f 6d 32 35 30 3e 0a  |>Msg_NB_Com250>.|
0000f2d0  32 36 30 09 3c 4e 65 77  73 42 61 73 65 5f 4d 6f  |260.<NewsBase_Mo|
0000f2e0  76 65 41 72 74 69 63 6c  65 3d 3e 4d 73 67 5f 4e  |veArticle=>Msg_N|
0000f2f0  42 5f 43 6f 6d 32 36 30  3e 0a 32 37 30 09 3c 4e  |B_Com260>.270.<N|
0000f300  65 77 73 42 61 73 65 5f  43 6f 70 79 41 72 74 69  |ewsBase_CopyArti|
0000f310  63 6c 65 3d 3e 4d 73 67  5f 4e 42 5f 43 6f 6d 32  |cle=>Msg_NB_Com2|
0000f320  37 30 3e 0a 32 38 30 09  3c 4e 65 77 73 42 61 73  |70>.280.<NewsBas|
0000f330  65 5f 43 61 6e 63 65 6c  41 72 74 69 63 6c 65 3d  |e_CancelArticle=|
0000f340  3e 4d 73 67 5f 4e 42 5f  43 6f 6d 32 38 30 3e 0a  |>Msg_NB_Com280>.|
0000f350  32 39 30 09 3c 4e 65 77  73 42 61 73 65 5f 47 72  |290.<NewsBase_Gr|
0000f360  6f 75 70 4f 76 65 72 76  69 65 77 3d 3e 4d 73 67  |oupOverview=>Msg|
0000f370  5f 4e 42 5f 43 6f 6d 32  39 30 3e 0a 23 49 6e 64  |_NB_Com290>.#Ind|
0000f380  65 6e 74 0a 0a 50 6f 73  74 69 6e 67 2f 6d 61 69  |ent..Posting/mai|
0000f390  6c 69 6e 67 20 63 6f 6d  6d 61 6e 64 73 0a 23 49  |ling commands.#I|
0000f3a0  6e 64 65 6e 74 20 32 0a  33 30 30 09 3c 4e 65 77  |ndent 2.300.<New|
0000f3b0  73 42 61 73 65 5f 50 6f  73 74 41 72 74 69 63 6c  |sBase_PostArticl|
0000f3c0  65 3d 3e 4d 73 67 5f 4e  42 5f 43 6f 6d 33 30 30  |e=>Msg_NB_Com300|
0000f3d0  3e 0a 33 31 30 09 3c 4e  65 77 73 42 61 73 65 5f  |>.310.<NewsBase_|
0000f3e0  4d 61 69 6c 41 72 74 69  63 6c 65 3d 3e 4d 73 67  |MailArticle=>Msg|
0000f3f0  5f 4e 42 5f 43 6f 6d 33  31 30 3e 0a 33 32 30 09  |_NB_Com310>.320.|
0000f400  3c 4e 65 77 73 42 61 73  65 5f 53 65 74 52 65 74  |<NewsBase_SetRet|
0000f410  75 72 6e 50 61 74 68 3d  3e 4d 73 67 5f 4e 42 5f  |urnPath=>Msg_NB_|
0000f420  43 6f 6d 33 32 30 3e 0a  23 49 6e 64 65 6e 74 0a  |Com320>.#Indent.|
0000f430  0a 55 73 65 72 20 6f 72  69 65 6e 74 65 64 20 63  |.User oriented c|
0000f440  6f 6d 6d 61 6e 64 73 0a  23 49 6e 64 65 6e 74 20  |ommands.#Indent |
0000f450  32 0a 34 30 30 09 3c 4e  65 77 73 42 61 73 65 5f  |2.400.<NewsBase_|
0000f460  4c 69 73 74 55 73 65 72  73 3d 3e 4d 73 67 5f 4e  |ListUsers=>Msg_N|
0000f470  42 5f 43 6f 6d 34 30 30  3e 0a 34 31 30 09 3c 4e  |B_Com400>.410.<N|
0000f480  65 77 73 42 61 73 65 5f  41 64 64 55 73 65 72 3d  |ewsBase_AddUser=|
0000f490  3e 4d 73 67 5f 4e 42 5f  43 6f 6d 34 31 30 3e 0a  |>Msg_NB_Com410>.|
0000f4a0  34 32 30 09 3c 4e 65 77  73 42 61 73 65 5f 44 65  |420.<NewsBase_De|
0000f4b0  6c 65 74 65 55 73 65 72  3d 3e 4d 73 67 5f 4e 42  |leteUser=>Msg_NB|
0000f4c0  5f 43 6f 6d 34 32 30 3e  0a 34 33 30 09 3c 4e 65  |_Com420>.430.<Ne|
0000f4d0  77 73 42 61 73 65 5f 4d  6f 64 69 66 79 55 73 65  |wsBase_ModifyUse|
0000f4e0  72 3d 3e 4d 73 67 5f 4e  42 5f 43 6f 6d 34 33 30  |r=>Msg_NB_Com430|
0000f4f0  3e 0a 34 34 30 09 3c 4e  65 77 73 42 61 73 65 5f  |>.440.<NewsBase_|
0000f500  47 65 74 55 73 65 72 49  6e 66 6f 3d 3e 4d 73 67  |GetUserInfo=>Msg|
0000f510  5f 4e 42 5f 43 6f 6d 34  34 30 3e 0a 34 35 30 09  |_NB_Com440>.450.|
0000f520  3c 4e 65 77 73 42 61 73  65 5f 45 78 61 6d 69 6e  |<NewsBase_Examin|
0000f530  65 46 6f 72 77 61 72 64  69 6e 67 3d 3e 4d 73 67  |eForwarding=>Msg|
0000f540  5f 4e 42 5f 43 6f 6d 34  35 30 3e 0a 34 36 30 09  |_NB_Com450>.460.|
0000f550  3c 4e 65 77 73 42 61 73  65 5f 45 78 61 6d 69 6e  |<NewsBase_Examin|
0000f560  65 56 61 63 61 74 69 6f  6e 3d 3e 4d 73 67 5f 4e  |eVacation=>Msg_N|
0000f570  42 5f 43 6f 6d 34 36 30  3e 0a 23 49 6e 64 65 6e  |B_Com460>.#Inden|
0000f580  74 0a 0a 54 72 61 6e 73  70 6f 72 74 20 6f 72 69  |t..Transport ori|
0000f590  65 6e 74 65 64 20 63 6f  6d 6d 61 6e 64 73 0a 23  |ented commands.#|
0000f5a0  49 6e 64 65 6e 74 20 32  0a 35 30 30 09 3c 4e 65  |Indent 2.500.<Ne|
0000f5b0  77 73 42 61 73 65 5f 4c  69 73 74 54 72 61 6e 73  |wsBase_ListTrans|
0000f5c0  70 6f 72 74 73 3d 3e 4d  73 67 5f 4e 42 5f 43 6f  |ports=>Msg_NB_Co|
0000f5d0  6d 35 30 30 3e 0a 23 49  6e 64 65 6e 74 0a 0a 51  |m500>.#Indent..Q|
0000f5e0  75 65 75 65 20 63 6f 6e  74 72 6f 6c 20 63 6f 6d  |ueue control com|
0000f5f0  6d 61 6e 64 73 0a 23 49  6e 64 65 6e 74 20 32 0a  |mands.#Indent 2.|
0000f600  38 30 30 09 3c 4e 65 77  73 42 61 73 65 5f 52 65  |800.<NewsBase_Re|
0000f610  45 64 69 74 3d 3e 4d 73  67 5f 4e 42 5f 43 6f 6d  |Edit=>Msg_NB_Com|
0000f620  38 30 30 3e 0a 23 49 6e  64 65 6e 74 0a 0a 4d 69  |800>.#Indent..Mi|
0000f630  73 63 65 6c 6c 61 6e 65  6f 75 73 20 63 6f 6d 6d  |scellaneous comm|
0000f640  61 6e 64 73 0a 23 49 6e  64 65 6e 74 20 32 0a 39  |ands.#Indent 2.9|
0000f650  30 30 09 3c 4e 65 77 73  42 61 73 65 5f 43 6c 69  |00.<NewsBase_Cli|
0000f660  65 6e 74 50 72 65 73 65  6e 74 3d 3e 4d 73 67 5f  |entPresent=>Msg_|
0000f670  4e 42 5f 43 6f 6d 39 30  30 3e 0a 31 30 30 30 09  |NB_Com900>.1000.|
0000f680  3c 4e 65 77 73 42 61 73  65 5f 53 63 72 69 70 74  |<NewsBase_Script|
0000f690  43 6f 6d 6d 61 6e 64 3d  3e 4d 73 67 5f 4e 42 5f  |Command=>Msg_NB_|
0000f6a0  43 6f 6d 31 30 30 30 3e  0a 23 49 6e 64 65 6e 74  |Com1000>.#Indent|
0000f6b0  0a 00 00 00 44 41 54 41  59 02 00 00 4e 65 77 73  |....DATAY...News|
0000f6c0  42 61 73 65 5f 55 70 64  61 74 65 20 28 26 38 33  |Base_Update (&83|
0000f6d0  35 38 32 29 0a 2b 32 30  09 3c 74 79 70 65 20 6f  |582).+20.<type o|
0000f6e0  66 20 75 70 64 61 74 65  3d 3e 2e 74 79 70 65 73  |f update=>.types|
0000f6f0  3e 0a 09 72 65 73 74 20  6f 66 20 62 6c 6f 63 6b  |>..rest of block|
0000f700  20 61 73 20 64 65 66 69  6e 65 64 20 62 79 20 63  | as defined by c|
0000f710  6f 64 65 0a 0a 54 68 69  73 20 69 73 20 62 72 6f  |ode..This is bro|
0000f720  61 64 63 61 73 74 20 62  79 20 4e 65 77 73 42 61  |adcast by NewsBa|
0000f730  73 65 20 77 68 65 6e 65  76 65 72 20 6f 6e 65 20  |se whenever one |
0000f740  6f 66 20 74 68 65 20 73  65 63 74 69 6f 6e 73 20  |of the sections |
0000f750  6f 66 20 74 68 65 20 64  61 74 61 62 61 73 65 20  |of the database |
0000f760  69 73 20 61 6c 74 65 72  65 64 2e 0a 23 73 75 62  |is altered..#sub|
0000f770  70 61 67 65 20 74 79 70  65 73 0a 4e 65 77 73 62  |page types.Newsb|
0000f780  61 73 65 20 75 70 64 61  74 65 20 74 79 70 65 73  |ase update types|
0000f790  0a 54 79 70 65 09 4d 65  61 6e 69 6e 67 0a 23 4c  |.Type.Meaning.#L|
0000f7a0  69 6e 65 0a 30 09 3c 47  72 6f 75 70 20 63 72 65  |ine.0.<Group cre|
0000f7b0  61 74 65 64 3d 3e 4d 73  67 5f 4e 42 5f 55 70 64  |ated=>Msg_NB_Upd|
0000f7c0  30 2d 31 3e 0a 31 09 3c  47 72 6f 75 70 20 64 65  |0-1>.1.<Group de|
0000f7d0  6c 65 74 65 64 3d 3e 4d  73 67 5f 4e 42 5f 55 70  |leted=>Msg_NB_Up|
0000f7e0  64 30 2d 31 3e 0a 32 09  3c 41 72 74 69 63 6c 65  |d0-1>.2.<Article|
0000f7f0  20 63 72 65 61 74 65 64  3d 3e 4d 73 67 5f 4e 42  | created=>Msg_NB|
0000f800  5f 55 70 64 32 3e 0a 33  09 3c 41 72 74 69 63 6c  |_Upd2>.3.<Articl|
0000f810  65 20 64 65 6c 65 74 65  64 3d 3e 4d 73 67 5f 4e  |e deleted=>Msg_N|
0000f820  42 5f 55 70 64 33 3e 0a  34 09 3c 55 73 65 72 20  |B_Upd3>.4.<User |
0000f830  61 64 64 65 64 3d 3e 4d  73 67 5f 4e 42 5f 55 70  |added=>Msg_NB_Up|
0000f840  64 34 2d 36 3e 0a 35 09  3c 55 73 65 72 20 64 65  |d4-6>.5.<User de|
0000f850  6c 65 74 65 64 3d 3e 4d  73 67 5f 4e 42 5f 55 70  |leted=>Msg_NB_Up|
0000f860  64 34 2d 36 3e 0a 36 09  3c 55 73 65 72 20 6d 6f  |d4-6>.6.<User mo|
0000f870  64 69 66 69 65 64 3d 3e  4d 73 67 5f 4e 42 5f 55  |dified=>Msg_NB_U|
0000f880  70 64 34 2d 36 3e 0a 31  30 09 3c 44 65 62 61 74  |pd4-6>.10.<Debat|
0000f890  63 68 20 66 69 6e 69 73  68 65 64 3d 3e 4d 73 67  |ch finished=>Msg|
0000f8a0  5f 4e 42 5f 55 70 64 31  30 3e 0a 31 31 09 3c 51  |_NB_Upd10>.11.<Q|
0000f8b0  75 65 75 65 73 20 75 70  64 61 74 65 64 3d 3e 4d  |ueues updated=>M|
0000f8c0  73 67 5f 4e 42 5f 55 70  64 31 31 3e 0a 31 32 09  |sg_NB_Upd11>.12.|
0000f8d0  3c 45 78 70 69 72 79 20  66 69 6e 69 73 68 65 64  |<Expiry finished|
0000f8e0  3d 3e 4d 73 67 5f 4e 42  5f 55 70 64 31 32 3e 0a  |=>Msg_NB_Upd12>.|
0000f8f0  31 30 30 09 3c 4d 65 73  73 61 67 65 3d 3e 4d 73  |100.<Message=>Ms|
0000f900  67 5f 4e 42 5f 55 70 64  31 30 30 3e 0a 00 00 00  |g_NB_Upd100>....|
0000f910  44 41 54 41 7e 09 00 00  4e 65 77 73 42 61 73 65  |DATA~...NewsBase|
0000f920  5f 52 65 70 6c 79 20 28  26 38 33 35 38 31 29 0a  |_Reply (&83581).|
0000f930  2b 32 30 09 3c 43 6f 6d  6d 61 6e 64 20 72 65 73  |+20.<Command res|
0000f940  70 6f 6e 73 65 20 63 6f  64 65 3d 3e 2e 63 6f 64  |ponse code=>.cod|
0000f950  65 73 3e 20 2b 20 52 65  66 65 72 65 6e 63 65 20  |es> + Reference |
0000f960  6e 75 6d 62 65 72 20 2b  20 3c 73 74 61 74 75 73  |number + <status|
0000f970  3d 3e 2e 73 74 61 74 75  73 3e 0a 09 72 65 73 74  |=>.status>..rest|
0000f980  20 6f 66 20 62 6c 6f 63  6b 20 61 73 20 64 65 66  | of block as def|
0000f990  69 6e 65 64 20 62 79 20  63 6f 64 65 0a 0a 4e 65  |ined by code..Ne|
0000f9a0  77 73 42 61 73 65 20 72  65 70 6c 69 65 73 20 74  |wsBase replies t|
0000f9b0  6f 20 3c 4e 65 77 73 42  61 73 65 5f 43 6f 6d 6d  |o <NewsBase_Comm|
0000f9c0  61 6e 64 3d 3e 4d 73 67  5f 38 33 35 38 30 3e 20  |and=>Msg_83580> |
0000f9d0  77 69 74 68 20 74 68 69  73 20 6d 65 73 73 61 67  |with this messag|
0000f9e0  65 2c 20 72 65 74 75 72  6e 69 6e 67 20 74 68 65  |e, returning the|
0000f9f0  20 73 61 6d 65 20 67 72  6f 75 70 73 2c 20 62 75  | same groups, bu|
0000fa00  74 20 77 69 74 68 20 74  68 65 20 6c 65 61 73 74  |t with the least|
0000fa10  20 73 69 67 6e 69 66 69  63 61 6e 74 20 64 69 67  | significant dig|
0000fa20  69 74 20 6f 66 20 74 68  65 20 72 65 73 70 6f 6e  |it of the respon|
0000fa30  73 65 20 63 6f 64 65 20  69 6e 64 69 63 61 74 69  |se code indicati|
0000fa40  6e 67 20 74 68 65 20 73  74 61 74 75 73 2e 0a 23  |ng the status..#|
0000fa50  53 75 62 70 61 67 65 20  63 6f 64 65 73 0a 4e 65  |Subpage codes.Ne|
0000fa60  77 73 42 61 73 65 20 63  6f 6d 6d 61 6e 64 20 72  |wsBase command r|
0000fa70  65 73 70 6f 6e 73 65 20  63 6f 64 65 73 0a 47 65  |esponse codes.Ge|
0000fa80  6e 65 72 61 6c 20 50 75  72 70 6f 73 65 20 43 6f  |neral Purpose Co|
0000fa90  6d 6d 61 6e 64 73 0a 23  49 6e 64 65 6e 74 20 32  |mmands.#Indent 2|
0000faa0  0a 30 09 3c 4e 65 77 73  42 61 73 65 5f 53 74 61  |.0.<NewsBase_Sta|
0000fab0  72 74 55 70 52 65 70 6c  79 3d 3e 4d 73 67 5f 4e  |rtUpReply=>Msg_N|
0000fac0  42 5f 52 65 70 30 3e 0a  31 30 09 3c 4e 65 77 73  |B_Rep0>.10.<News|
0000fad0  42 61 73 65 5f 53 68 75  74 44 6f 77 6e 3d 3e 4d  |Base_ShutDown=>M|
0000fae0  73 67 5f 4e 42 5f 52 65  70 31 30 3e 0a 32 30 09  |sg_NB_Rep10>.20.|
0000faf0  3c 4e 65 77 73 42 61 73  65 5f 53 65 74 55 73 65  |<NewsBase_SetUse|
0000fb00  72 3d 3e 4d 73 67 5f 4e  42 5f 52 65 70 32 30 3e  |r=>Msg_NB_Rep20>|
0000fb10  0a 33 30 09 3c 4e 65 77  73 42 61 73 65 5f 53 69  |.30.<NewsBase_Si|
0000fb20  74 65 49 6e 66 6f 3d 3e  4d 73 67 5f 4e 42 5f 52  |teInfo=>Msg_NB_R|
0000fb30  65 70 33 30 3e 0a 34 30  09 4e 65 77 73 42 61 73  |ep30>.40.NewsBas|
0000fb40  65 5f 53 65 74 53 69 74  65 49 6e 66 6f 20 28 73  |e_SetSiteInfo (s|
0000fb50  75 63 63 65 73 73 2f 66  61 69 6c 75 72 65 20 6f  |uccess/failure o|
0000fb60  6e 6c 79 29 0a 23 49 6e  64 65 6e 74 0a 0a 4e 65  |nly).#Indent..Ne|
0000fb70  77 73 67 72 6f 75 70 20  6f 72 69 65 6e 74 65 64  |wsgroup oriented|
0000fb80  20 63 6f 6d 6d 61 6e 64  73 0a 23 49 6e 64 65 6e  | commands.#Inden|
0000fb90  74 20 32 0a 31 30 30 09  3c 4e 65 77 73 42 61 73  |t 2.100.<NewsBas|
0000fba0  65 5f 47 72 6f 75 70 4c  69 73 74 3d 3e 4d 73 67  |e_GroupList=>Msg|
0000fbb0  5f 4e 42 5f 52 65 70 31  30 30 3e 0a 31 31 30 09  |_NB_Rep100>.110.|
0000fbc0  3c 4e 65 77 73 42 61 73  65 5f 4e 65 77 47 72 6f  |<NewsBase_NewGro|
0000fbd0  75 70 4c 69 73 74 3d 3e  4d 73 67 5f 4e 42 5f 52  |upList=>Msg_NB_R|
0000fbe0  65 70 31 31 30 3e 0a 31  32 30 09 4e 65 77 73 42  |ep110>.120.NewsB|
0000fbf0  61 73 65 5f 41 64 64 47  72 6f 75 70 4f 6b 20 28  |ase_AddGroupOk (|
0000fc00  73 75 63 63 65 73 73 2f  66 61 69 6c 75 72 65 20  |success/failure |
0000fc10  6f 6e 6c 79 29 0a 31 33  30 09 4e 65 77 73 42 61  |only).130.NewsBa|
0000fc20  73 65 5f 52 65 6d 6f 76  65 47 72 6f 75 70 4f 6b  |se_RemoveGroupOk|
0000fc30  20 28 73 75 63 63 65 73  73 2f 66 61 69 6c 75 72  | (success/failur|
0000fc40  65 20 6f 6e 6c 79 29 0a  31 34 30 09 4e 65 77 73  |e only).140.News|
0000fc50  42 61 73 65 5f 45 78 70  69 72 65 47 72 6f 75 70  |Base_ExpireGroup|
0000fc60  4f 6b 20 28 73 75 63 63  65 73 73 2f 66 61 69 6c  |Ok (success/fail|
0000fc70  75 72 65 20 6f 6e 6c 79  29 0a 23 49 6e 64 65 6e  |ure only).#Inden|
0000fc80  74 0a 0a 41 72 74 69 63  6c 65 20 6f 72 69 65 6e  |t..Article orien|
0000fc90  74 65 64 20 63 6f 6d 6d  61 6e 64 73 0a 23 49 6e  |ted commands.#In|
0000fca0  64 65 6e 74 20 32 0a 32  30 30 09 3c 4e 65 77 73  |dent 2.200.<News|
0000fcb0  42 61 73 65 5f 41 72 74  4c 69 73 74 3d 3e 4d 73  |Base_ArtList=>Ms|
0000fcc0  67 5f 4e 42 5f 52 65 70  32 30 30 3e 0a 32 31 30  |g_NB_Rep200>.210|
0000fcd0  09 3c 4e 65 77 73 42 61  73 65 5f 41 72 74 49 6e  |.<NewsBase_ArtIn|
0000fce0  66 6f 3d 3e 4d 73 67 5f  4e 42 5f 52 65 70 32 31  |fo=>Msg_NB_Rep21|
0000fcf0  30 3e 0a 32 32 30 09 3c  4e 65 77 73 42 61 73 65  |0>.220.<NewsBase|
0000fd00  5f 47 65 74 41 72 74 69  63 6c 65 3d 3e 4d 73 67  |_GetArticle=>Msg|
0000fd10  5f 4e 42 5f 52 65 70 32  32 30 3e 0a 32 33 30 09  |_NB_Rep220>.230.|
0000fd20  4e 65 77 73 42 61 73 65  5f 4c 6f 63 6b 41 72 74  |NewsBase_LockArt|
0000fd30  69 63 6c 65 4f 6b 20 28  73 75 63 63 65 73 73 2f  |icleOk (success/|
0000fd40  66 61 69 6c 75 72 65 20  6f 6e 6c 79 29 0a 32 34  |failure only).24|
0000fd50  30 09 4e 65 77 73 42 61  73 65 5f 55 6e 4c 6f 63  |0.NewsBase_UnLoc|
0000fd60  6b 41 72 74 69 63 6c 65  4f 6b 20 28 73 75 63 63  |kArticleOk (succ|
0000fd70  65 73 73 2f 66 61 69 6c  75 72 65 20 6f 6e 6c 79  |ess/failure only|
0000fd80  29 0a 32 35 30 09 4e 65  77 73 42 61 73 65 5f 44  |).250.NewsBase_D|
0000fd90  65 6c 65 74 65 41 72 74  69 63 6c 65 4f 6b 20 28  |eleteArticleOk (|
0000fda0  73 75 63 63 65 73 73 2f  66 61 69 6c 75 72 65 20  |success/failure |
0000fdb0  6f 6e 6c 79 29 0a 32 36  30 09 4e 65 77 73 42 61  |only).260.NewsBa|
0000fdc0  73 65 5f 4d 6f 76 65 41  72 74 69 63 6c 65 4f 6b  |se_MoveArticleOk|
0000fdd0  20 28 73 75 63 63 65 73  73 2f 66 61 69 6c 75 72  | (success/failur|
0000fde0  65 20 6f 6e 6c 79 29 0a  32 37 30 09 4e 65 77 73  |e only).270.News|
0000fdf0  42 61 73 65 5f 43 6f 70  79 41 72 74 69 63 6c 65  |Base_CopyArticle|
0000fe00  4f 6b 20 28 73 75 63 63  65 73 73 2f 66 61 69 6c  |Ok (success/fail|
0000fe10  75 72 65 20 6f 6e 6c 79  29 0a 32 38 30 09 4e 65  |ure only).280.Ne|
0000fe20  77 73 42 61 73 65 5f 43  61 6e 63 65 6c 41 72 74  |wsBase_CancelArt|
0000fe30  69 63 6c 65 20 28 75 6e  64 6f 63 75 6d 65 6e 74  |icle (undocument|
0000fe40  65 64 20 3f 29 0a 32 39  30 09 3c 4e 65 77 73 42  |ed ?).290.<NewsB|
0000fe50  61 73 65 5f 47 72 6f 75  70 4f 76 65 72 76 69 65  |ase_GroupOvervie|
0000fe60  77 3d 3e 4d 73 67 5f 4e  42 5f 52 65 70 32 39 30  |w=>Msg_NB_Rep290|
0000fe70  3e 0a 23 49 6e 64 65 6e  74 0a 0a 50 6f 73 74 69  |>.#Indent..Posti|
0000fe80  6e 67 2f 6d 61 69 6c 69  6e 67 20 63 6f 6d 6d 61  |ng/mailing comma|
0000fe90  6e 64 73 0a 23 49 6e 64  65 6e 74 20 32 0a 33 30  |nds.#Indent 2.30|
0000fea0  30 09 4e 65 77 73 42 61  73 65 5f 41 72 74 69 63  |0.NewsBase_Artic|
0000feb0  6c 65 50 6f 73 74 65 64  20 28 73 75 63 63 65 73  |lePosted (succes|
0000fec0  73 2f 66 61 69 6c 75 72  65 20 6f 6e 6c 79 29 0a  |s/failure only).|
0000fed0  33 31 30 09 4e 65 77 73  42 61 73 65 5f 4d 65 73  |310.NewsBase_Mes|
0000fee0  73 61 67 65 53 65 6e 74  20 28 73 75 63 63 65 73  |sageSent (succes|
0000fef0  73 2f 66 61 69 6c 75 72  65 20 6f 6e 6c 79 29 0a  |s/failure only).|
0000ff00  23 49 6e 64 65 6e 74 0a  0a 55 73 65 72 20 6f 72  |#Indent..User or|
0000ff10  69 65 6e 74 65 64 20 63  6f 6d 6d 61 6e 64 73 0a  |iented commands.|
0000ff20  23 49 6e 64 65 6e 74 20  32 0a 34 30 30 09 3c 4e  |#Indent 2.400.<N|
0000ff30  65 77 73 42 61 73 65 5f  55 73 65 72 4c 69 73 74  |ewsBase_UserList|
0000ff40  3d 3e 4d 73 67 5f 4e 42  5f 52 65 70 34 30 30 3e  |=>Msg_NB_Rep400>|
0000ff50  0a 34 31 30 09 4e 65 77  73 42 61 73 65 5f 41 64  |.410.NewsBase_Ad|
0000ff60  64 55 73 65 72 4f 6b 20  28 73 75 63 63 65 73 73  |dUserOk (success|
0000ff70  2f 66 61 69 6c 75 72 65  20 6f 6e 6c 79 29 0a 34  |/failure only).4|
0000ff80  32 30 09 4e 65 77 73 42  61 73 65 5f 44 65 6c 65  |20.NewsBase_Dele|
0000ff90  74 65 55 73 65 72 4f 6b  20 28 73 75 63 63 65 73  |teUserOk (succes|
0000ffa0  73 2f 66 61 69 6c 75 72  65 20 6f 6e 6c 79 29 0a  |s/failure only).|
0000ffb0  34 33 30 09 4e 65 77 73  42 61 73 65 5f 4d 6f 64  |430.NewsBase_Mod|
0000ffc0  69 66 79 55 73 65 72 4f  6b 20 28 73 75 63 63 65  |ifyUserOk (succe|
0000ffd0  73 73 2f 66 61 69 6c 75  72 65 20 6f 6e 6c 79 29  |ss/failure only)|
0000ffe0  0a 34 34 30 09 3c 4e 65  77 73 42 61 73 65 5f 47  |.440.<NewsBase_G|
0000fff0  65 74 55 73 65 72 49 6e  66 6f 3d 3e 4d 73 67 5f  |etUserInfo=>Msg_|
00010000  4e 42 5f 52 65 70 34 34  30 3e 0a 34 35 30 09 3c  |NB_Rep440>.450.<|
00010010  4e 65 77 73 42 61 73 65  5f 45 78 61 6d 69 6e 65  |NewsBase_Examine|
00010020  46 6f 72 77 61 72 64 69  6e 67 3d 3e 4d 73 67 5f  |Forwarding=>Msg_|
00010030  4e 42 5f 52 65 70 34 35  30 3e 0a 34 36 30 09 3c  |NB_Rep450>.460.<|
00010040  4e 65 77 73 42 61 73 65  5f 45 78 61 6d 69 6e 65  |NewsBase_Examine|
00010050  56 61 63 61 74 69 6f 6e  3d 3e 4d 73 67 5f 4e 42  |Vacation=>Msg_NB|
00010060  5f 52 65 70 34 36 30 3e  0a 23 49 6e 64 65 6e 74  |_Rep460>.#Indent|
00010070  0a 0a 54 72 61 6e 73 70  6f 72 74 20 63 6f 6d 6d  |..Transport comm|
00010080  61 6e 64 73 0a 23 49 6e  64 65 6e 74 20 32 0a 35  |ands.#Indent 2.5|
00010090  30 30 09 3c 4e 65 77 73  42 61 73 65 5f 4c 69 73  |00.<NewsBase_Lis|
000100a0  74 54 72 61 6e 73 70 6f  72 74 73 3d 3e 4d 73 67  |tTransports=>Msg|
000100b0  5f 4e 42 5f 52 65 70 35  30 30 3e 0a 23 49 6e 64  |_NB_Rep500>.#Ind|
000100c0  65 6e 74 0a 0a 51 75 65  75 65 20 63 6f 6e 74 72  |ent..Queue contr|
000100d0  6f 6c 20 63 6f 6d 6d 61  6e 64 73 0a 23 49 6e 64  |ol commands.#Ind|
000100e0  65 6e 74 20 32 0a 38 30  30 09 4e 65 77 73 42 61  |ent 2.800.NewsBa|
000100f0  73 65 5f 51 75 65 75 65  45 64 69 74 0a 23 49 6e  |se_QueueEdit.#In|
00010100  64 65 6e 74 0a 0a 4d 69  73 63 65 6c 6c 61 6e 65  |dent..Miscellane|
00010110  6f 75 73 20 63 6f 6d 6d  61 6e 64 73 0a 23 49 6e  |ous commands.#In|
00010120  64 65 6e 74 20 32 0a 39  30 30 09 3c 4e 65 77 73  |dent 2.900.<News|
00010130  42 61 73 65 5f 43 6c 69  65 6e 74 50 72 65 73 65  |Base_ClientPrese|
00010140  6e 74 3d 3e 4d 73 67 5f  4e 42 5f 52 65 70 39 30  |nt=>Msg_NB_Rep90|
00010150  30 3e 0a 23 49 6e 64 65  6e 74 0a 23 53 75 62 70  |0>.#Indent.#Subp|
00010160  61 67 65 20 73 74 61 74  75 73 0a 4e 65 77 73 42  |age status.NewsB|
00010170  61 73 65 5f 52 65 70 6c  79 20 73 74 61 74 75 73  |ase_Reply status|
00010180  0a 53 74 61 74 75 73 09  4d 65 61 6e 69 6e 67 0a  |.Status.Meaning.|
00010190  23 4c 69 6e 65 0a 30 09  43 6f 6d 6d 61 6e 64 20  |#Line.0.Command |
000101a0  65 78 65 63 75 74 65 64  20 28 64 61 74 61 20 61  |executed (data a|
000101b0  73 20 64 65 73 63 72 69  62 65 64 29 0a 31 09 43  |s described).1.C|
000101c0  6f 6d 6d 61 6e 64 20 6f  6b 2c 20 62 75 74 20 63  |ommand ok, but c|
000101d0  61 6e 6e 6f 74 20 62 65  20 70 65 72 66 6f 72 6d  |annot be perform|
000101e0  65 64 20 66 6f 72 20 73  6f 6d 65 20 72 65 61 73  |ed for some reas|
000101f0  6f 6e 0a 32 09 43 6f 6d  6d 61 6e 64 20 6f 6b 2c  |on.2.Command ok,|
00010200  20 62 75 74 20 63 61 6e  6e 6f 74 20 62 65 20 70  | but cannot be p|
00010210  65 72 66 6f 72 6d 65 64  20 6a 75 73 74 20 6e 6f  |erformed just no|
00010220  77 20 28 74 72 79 20 6c  61 74 65 72 29 0a 39 09  |w (try later).9.|
00010230  42 61 64 20 63 6f 6d 6d  61 6e 64 0a 0a 49 6e 20  |Bad command..In |
00010240  63 61 73 65 73 20 31 2c  20 32 20 61 6e 64 20 39  |cases 1, 2 and 9|
00010250  20 62 6c 6f 63 6b 2b 33  32 20 63 6f 6e 74 61 69  | block+32 contai|
00010260  6e 73 20 61 20 64 65 73  63 72 69 70 74 69 76 65  |ns a descriptive|
00010270  20 6d 65 73 73 61 67 65  20 64 65 74 61 69 6c 69  | message detaili|
00010280  6e 67 20 74 68 65 20 65  72 72 6f 72 2e 0a 00 00  |ng the error....|
00010290  44 41 54 41 63 12 00 00  55 73 65 72 20 6d 65 73  |DATAc...User mes|
000102a0  73 61 67 65 73 0a 23 50  61 72 65 6e 74 20 21 52  |sages.#Parent !R|
000102b0  6f 6f 74 0a 4d 69 73 63  20 3a 0a 23 49 6e 64 65  |oot.Misc :.#Inde|
000102c0  6e 74 20 34 0a 23 54 61  62 6c 65 20 43 6f 6c 75  |nt 4.#Table Colu|
000102d0  6d 6e 73 20 33 0a 3c 30  20 51 75 69 74 3d 3e 4d  |mns 3.<0 Quit=>M|
000102e0  73 67 5f 30 3e 0a 3c 38  20 50 72 65 51 75 69 74  |sg_0>.<8 PreQuit|
000102f0  3d 3e 4d 73 67 5f 38 3e  0a 3c 39 20 50 61 6c 65  |=>Msg_8>.<9 Pale|
00010300  74 74 65 43 68 61 6e 67  65 3d 3e 4d 73 67 5f 39  |tteChange=>Msg_9|
00010310  3e 0a 3c 41 20 53 61 76  65 44 65 73 6b 74 6f 70  |>.<A SaveDesktop|
00010320  3d 3e 4d 73 67 5f 41 3e  0a 3c 42 20 44 65 76 69  |=>Msg_A>.<B Devi|
00010330  63 65 43 6c 61 69 6d 3d  3e 4d 73 67 5f 42 3e 0a  |ceClaim=>Msg_B>.|
00010340  3c 43 20 44 65 76 69 63  65 49 6e 55 73 65 3d 3e  |<C DeviceInUse=>|
00010350  4d 73 67 5f 43 3e 0a 3c  45 20 53 68 75 74 64 6f  |Msg_C>.<E Shutdo|
00010360  77 6e 3d 3e 4d 73 67 5f  45 3e 0a 3c 34 30 30 20  |wn=>Msg_E>.<400 |
00010370  46 69 6c 65 72 4f 70 65  6e 44 69 72 3d 3e 4d 73  |FilerOpenDir=>Ms|
00010380  67 5f 34 30 30 3e 0a 3c  34 30 31 20 46 69 6c 65  |g_400>.<401 File|
00010390  72 43 6c 6f 73 65 44 69  72 3d 3e 4d 73 67 5f 34  |rCloseDir=>Msg_4|
000103a0  30 31 3e 0a 3c 34 30 32  20 46 69 6c 65 72 4f 70  |01>.<402 FilerOp|
000103b0  65 6e 44 69 72 41 74 3d  3e 4d 73 67 5f 34 30 32  |enDirAt=>Msg_402|
000103c0  3e 0a 3c 34 30 33 20 46  69 6c 65 72 53 65 6c 65  |>.<403 FilerSele|
000103d0  63 74 69 6f 6e 44 69 72  65 63 74 6f 72 79 3d 3e  |ctionDirectory=>|
000103e0  4d 73 67 5f 34 30 33 3e  0a 3c 34 30 34 20 46 69  |Msg_403>.<404 Fi|
000103f0  6c 65 72 41 64 64 53 65  6c 65 63 74 69 6f 6e 3d  |lerAddSelection=|
00010400  3e 4d 73 67 5f 34 30 34  3e 0a 3c 34 30 35 20 46  |>Msg_404>.<405 F|
00010410  69 6c 65 72 41 63 74 69  6f 6e 3d 3e 4d 73 67 5f  |ilerAction=>Msg_|
00010420  34 30 35 3e 0a 3c 34 30  36 20 46 69 6c 65 72 43  |405>.<406 FilerC|
00010430  6f 6e 74 72 6f 6c 41 63  74 69 6f 6e 3d 3e 4d 73  |ontrolAction=>Ms|
00010440  67 5f 34 30 36 3e 0a 3c  34 30 37 20 46 69 6c 65  |g_406>.<407 File|
00010450  72 53 65 6c 65 63 74 69  6f 6e 3d 3e 4d 73 67 5f  |rSelection=>Msg_|
00010460  34 30 37 3e 0a 3c 35 30  30 20 41 6c 61 72 6d 53  |407>.<500 AlarmS|
00010470  65 74 3d 3e 4d 73 67 5f  35 30 30 3e 0a 3c 35 30  |et=>Msg_500>.<50|
00010480  31 20 41 6c 61 72 6d 47  6f 6e 65 4f 66 66 3d 3e  |1 AlarmGoneOff=>|
00010490  4d 73 67 5f 35 30 31 3e  0a 3c 35 30 32 20 48 65  |Msg_501>.<502 He|
000104a0  6c 70 52 65 71 75 65 73  74 3d 3e 4d 73 67 5f 35  |lpRequest=>Msg_5|
000104b0  30 32 3e 0a 3c 35 30 33  20 48 65 6c 70 52 65 70  |02>.<503 HelpRep|
000104c0  6c 79 3d 3e 4d 73 67 5f  35 30 33 3e 0a 3c 34 30  |ly=>Msg_503>.<40|
000104d0  30 34 30 20 4e 6f 74 69  66 79 3d 3e 4d 73 67 5f  |040 Notify=>Msg_|
000104e0  34 30 30 34 30 3e 0a 3c  34 30 30 43 30 20 4d 65  |40040>.<400C0 Me|
000104f0  6e 75 57 61 72 6e 69 6e  67 3d 3e 4d 73 67 5f 34  |nuWarning=>Msg_4|
00010500  30 30 43 30 3e 0a 3c 34  30 30 43 31 20 4d 6f 64  |00C0>.<400C1 Mod|
00010510  65 43 68 61 6e 67 65 3d  3e 4d 73 67 5f 34 30 30  |eChange=>Msg_400|
00010520  43 31 3e 0a 3c 34 30 30  43 32 20 54 61 73 6b 49  |C1>.<400C2 TaskI|
00010530  6e 69 74 69 61 6c 69 73  65 3d 3e 4d 73 67 5f 34  |nitialise=>Msg_4|
00010540  30 30 43 32 3e 0a 3c 34  30 30 43 33 20 54 61 73  |00C2>.<400C3 Tas|
00010550  6b 43 6c 6f 73 65 44 6f  77 6e 3d 3e 4d 73 67 5f  |kCloseDown=>Msg_|
00010560  34 30 30 43 33 3e 0a 3c  34 30 30 43 34 20 53 6c  |400C3>.<400C4 Sl|
00010570  6f 74 53 69 7a 65 3d 3e  4d 73 67 5f 34 30 30 43  |otSize=>Msg_400C|
00010580  34 3e 0a 3c 34 30 30 43  35 20 53 65 74 53 6c 6f  |4>.<400C5 SetSlo|
00010590  74 3d 3e 4d 73 67 5f 34  30 30 43 35 3e 0a 3c 34  |t=>Msg_400C5>.<4|
000105a0  30 30 43 36 20 54 61 73  6b 4e 61 6d 65 52 71 3d  |00C6 TaskNameRq=|
000105b0  3e 4d 73 67 5f 34 30 30  43 36 3e 0a 3c 34 30 30  |>Msg_400C6>.<400|
000105c0  43 37 20 54 61 73 6b 4e  61 6d 65 49 73 3d 3e 4d  |C7 TaskNameIs=>M|
000105d0  73 67 5f 34 30 30 43 37  3e 0a 3c 34 30 30 43 38  |sg_400C7>.<400C8|
000105e0  20 54 61 73 6b 53 74 61  72 74 65 64 3d 3e 4d 73  | TaskStarted=>Ms|
000105f0  67 5f 34 30 30 43 38 3e  0a 3c 34 30 30 43 39 20  |g_400C8>.<400C9 |
00010600  4d 65 6e 75 73 44 65 6c  65 74 65 64 3d 3e 4d 73  |MenusDeleted=>Ms|
00010610  67 5f 34 30 30 43 39 3e  0a 3c 34 30 30 43 41 20  |g_400C9>.<400CA |
00010620  49 63 6f 6e 69 7a 65 3d  3e 4d 73 67 5f 34 30 30  |Iconize=>Msg_400|
00010630  43 41 3e 0a 3c 34 30 30  43 42 20 57 69 6e 64 6f  |CA>.<400CB Windo|
00010640  77 43 6c 6f 73 65 64 3d  3e 4d 73 67 5f 34 30 30  |wClosed=>Msg_400|
00010650  43 42 3e 0a 3c 34 30 30  43 43 20 57 69 6e 64 6f  |CB>.<400CC Windo|
00010660  77 49 6e 66 6f 3d 3e 4d  73 67 5f 34 30 30 43 43  |wInfo=>Msg_400CC|
00010670  3e 0a 34 30 30 43 44 20  53 77 61 70 0a 34 30 30  |>.400CD Swap.400|
00010680  43 45 20 54 6f 6f 6c 73  43 68 61 6e 67 65 64 0a  |CE ToolsChanged.|
00010690  34 30 30 43 46 20 46 6f  6e 74 43 68 61 6e 67 65  |400CF FontChange|
000106a0  64 0a 23 45 6e 64 54 61  62 6c 65 0a 0a 23 49 6e  |d.#EndTable..#In|
000106b0  64 65 6e 74 0a 54 68 65  20 62 6c 6f 63 6b 20 74  |dent.The block t|
000106c0  72 61 6e 73 66 65 72 20  6d 6f 64 65 6c 20 28 43  |ransfer model (C|
000106d0  6c 69 70 62 6f 61 72 64  2c 20 44 72 61 67 27 6e  |lipboard, Drag'n|
000106e0  20 64 72 6f 70 29 20 3a  0a 23 49 6e 64 65 6e 74  | drop) :.#Indent|
000106f0  20 34 0a 23 54 61 62 6c  65 20 43 6f 6c 75 6d 6e  | 4.#Table Column|
00010700  73 20 32 0a 3c 46 20 43  6c 61 69 6d 45 6e 74 69  |s 2.<F ClaimEnti|
00010710  74 79 3d 3e 4d 73 67 5f  46 3e 0a 3c 31 30 20 44  |ty=>Msg_F>.<10 D|
00010720  61 74 61 52 65 71 75 65  73 74 3d 3e 4d 73 67 5f  |ataRequest=>Msg_|
00010730  31 30 3e 0a 3c 31 31 20  44 72 61 67 67 69 6e 67  |10>.<11 Dragging|
00010740  3d 3e 4d 73 67 5f 31 31  3e 0a 3c 31 32 20 44 72  |=>Msg_11>.<12 Dr|
00010750  61 67 43 6c 61 69 6d 3d  3e 4d 73 67 5f 31 32 3e  |agClaim=>Msg_12>|
00010760  0a 23 45 6e 64 54 61 62  6c 65 0a 23 20 47 65 72  |.#EndTable.# Ger|
00010770  70 68 3e 20 31 33 20 63  61 6e 6e 6f 74 20 62 65  |ph> 13 cannot be|
00010780  20 64 6f 63 75 6d 65 6e  74 65 64 20 62 65 63 61  | documented beca|
00010790  75 73 65 20 69 74 27 73  20 6e 6f 74 20 6f 75 74  |use it's not out|
000107a0  20 6f 66 20 41 63 6f 72  6e 20 79 65 74 20 21 0a  | of Acorn yet !.|
000107b0  0a 23 49 6e 64 65 6e 74  0a 44 61 74 61 20 54 72  |.#Indent.Data Tr|
000107c0  61 6e 73 66 65 72 20 50  72 6f 74 6f 63 6f 6c 20  |ansfer Protocol |
000107d0  3a 0a 23 49 6e 64 65 6e  74 20 34 0a 23 54 61 62  |:.#Indent 4.#Tab|
000107e0  6c 65 20 43 6f 6c 75 6d  6e 73 20 33 0a 3c 31 20  |le Columns 3.<1 |
000107f0  44 61 74 61 53 61 76 65  3d 3e 4d 73 67 5f 31 3e  |DataSave=>Msg_1>|
00010800  0a 3c 32 20 44 61 74 61  53 61 76 65 41 63 6b 3d  |.<2 DataSaveAck=|
00010810  3e 4d 73 67 5f 32 3e 0a  3c 33 20 44 61 74 61 4c  |>Msg_2>.<3 DataL|
00010820  6f 61 64 3d 3e 4d 73 67  5f 33 3e 0a 3c 34 20 44  |oad=>Msg_3>.<4 D|
00010830  61 74 61 4c 6f 61 64 41  63 6b 3d 3e 4d 73 67 5f  |ataLoadAck=>Msg_|
00010840  34 3e 0a 3c 35 20 44 61  74 61 4f 70 65 6e 3d 3e  |4>.<5 DataOpen=>|
00010850  4d 73 67 5f 35 3e 0a 3c  36 20 52 41 4d 46 65 74  |Msg_5>.<6 RAMFet|
00010860  63 68 3d 3e 4d 73 67 5f  36 3e 0a 3c 37 20 52 41  |ch=>Msg_6>.<7 RA|
00010870  4d 54 72 61 6e 73 6d 69  74 3d 3e 4d 73 67 5f 37  |MTransmit=>Msg_7|
00010880  3e 0a 3c 44 20 44 61 74  61 53 61 76 65 64 3d 3e  |>.<D DataSaved=>|
00010890  4d 73 67 5f 44 3e 0a 23  45 6e 64 54 61 62 6c 65  |Msg_D>.#EndTable|
000108a0  0a 0a 23 69 6e 64 65 6e  74 0a 3c 50 6c 75 67 49  |..#indent.<PlugI|
000108b0  6e 20 50 72 6f 74 6f 63  6f 6c 3d 3e 4d 73 67 5f  |n Protocol=>Msg_|
000108c0  50 6c 75 67 69 6e 5f 3e  20 3a 0a 23 49 6e 64 65  |Plugin_> :.#Inde|
000108d0  6e 74 20 34 0a 23 54 61  62 6c 65 20 43 6f 6c 75  |nt 4.#Table Colu|
000108e0  6d 6e 73 20 33 0a 3c 34  44 35 34 30 20 50 6c 75  |mns 3.<4D540 Plu|
000108f0  67 49 6e 5f 4f 70 65 6e  3d 3e 4d 73 67 5f 50 6c  |gIn_Open=>Msg_Pl|
00010900  75 67 69 6e 5f 34 44 35  34 30 3e 0a 3c 34 44 35  |ugin_4D540>.<4D5|
00010910  34 31 20 50 6c 75 67 49  6e 5f 4f 70 65 6e 69 6e  |41 PlugIn_Openin|
00010920  67 3d 3e 4d 73 67 5f 50  6c 75 67 69 6e 5f 34 44  |g=>Msg_Plugin_4D|
00010930  35 34 31 3e 0a 3c 34 44  35 34 32 20 50 6c 75 67  |541>.<4D542 Plug|
00010940  49 6e 5f 43 6c 6f 73 65  3d 3e 4d 73 67 5f 50 6c  |In_Close=>Msg_Pl|
00010950  75 67 69 6e 5f 34 44 35  34 32 3e 0a 3c 34 44 35  |ugin_4D542>.<4D5|
00010960  34 33 20 50 6c 75 67 49  6e 5f 43 6c 6f 73 65 64  |43 PlugIn_Closed|
00010970  3d 3e 4d 73 67 5f 50 6c  75 67 69 6e 5f 34 44 35  |=>Msg_Plugin_4D5|
00010980  34 33 3e 0a 3c 34 44 35  34 34 20 50 6c 75 67 49  |43>.<4D544 PlugI|
00010990  6e 5f 52 65 73 68 61 70  65 3d 3e 4d 73 67 5f 50  |n_Reshape=>Msg_P|
000109a0  6c 75 67 69 6e 5f 34 44  35 34 34 3e 0a 3c 34 44  |lugin_4D544>.<4D|
000109b0  35 34 35 20 50 6c 75 67  49 6e 5f 52 65 73 68 61  |545 PlugIn_Resha|
000109c0  70 65 5f 52 65 71 75 65  73 74 3d 3e 4d 73 67 5f  |pe_Request=>Msg_|
000109d0  50 6c 75 67 69 6e 5f 34  44 35 34 35 3e 0a 3c 34  |Plugin_4D545>.<4|
000109e0  44 35 34 36 20 50 6c 75  67 49 6e 5f 46 6f 63 75  |D546 PlugIn_Focu|
000109f0  73 3d 3e 4d 73 67 5f 50  6c 75 67 69 6e 5f 34 44  |s=>Msg_Plugin_4D|
00010a00  35 34 36 3e 0a 3c 34 44  35 34 37 20 50 6c 75 67  |546>.<4D547 Plug|
00010a10  49 6e 5f 55 6e 6c 6f 63  6b 3d 3e 4d 73 67 5f 50  |In_Unlock=>Msg_P|
00010a20  6c 75 67 69 6e 5f 34 44  35 34 37 3e 0a 3c 34 44  |lugin_4D547>.<4D|
00010a30  35 34 38 20 50 6c 75 67  49 6e 5f 53 74 72 65 61  |548 PlugIn_Strea|
00010a40  6d 4e 65 77 3d 3e 4d 73  67 5f 50 6c 75 67 69 6e  |mNew=>Msg_Plugin|
00010a50  5f 34 44 35 34 38 3e 0a  3c 34 44 35 34 39 20 50  |_4D548>.<4D549 P|
00010a60  6c 75 67 49 6e 5f 53 74  72 65 61 6d 44 65 73 74  |lugIn_StreamDest|
00010a70  72 6f 79 3d 3e 4d 73 67  5f 50 6c 75 67 69 6e 5f  |roy=>Msg_Plugin_|
00010a80  34 44 35 34 39 3e 0a 3c  34 44 35 34 41 20 50 6c  |4D549>.<4D54A Pl|
00010a90  75 67 49 6e 5f 53 74 72  65 61 6d 57 72 69 74 65  |ugIn_StreamWrite|
00010aa0  3d 3e 4d 73 67 5f 50 6c  75 67 69 6e 5f 34 44 35  |=>Msg_Plugin_4D5|
00010ab0  34 41 3e 0a 3c 34 44 35  34 42 20 50 6c 75 67 49  |4A>.<4D54B PlugI|
00010ac0  6e 5f 53 74 72 65 61 6d  57 72 69 74 74 65 6e 3d  |n_StreamWritten=|
00010ad0  3e 4d 73 67 5f 50 6c 75  67 69 6e 5f 34 44 35 34  |>Msg_Plugin_4D54|
00010ae0  42 3e 0a 3c 34 44 35 34  43 20 50 6c 75 67 49 6e  |B>.<4D54C PlugIn|
00010af0  5f 53 74 72 65 61 6d 41  73 46 69 6c 65 3d 3e 4d  |_StreamAsFile=>M|
00010b00  73 67 5f 50 6c 75 67 69  6e 5f 34 44 35 34 43 3e  |sg_Plugin_4D54C>|
00010b10  0a 3c 34 44 35 34 44 20  50 6c 75 67 49 6e 5f 55  |.<4D54D PlugIn_U|
00010b20  52 4c 41 63 63 65 73 73  3d 3e 4d 73 67 5f 50 6c  |RLAccess=>Msg_Pl|
00010b30  75 67 69 6e 5f 34 44 35  34 44 3e 0a 3c 34 44 35  |ugin_4D54D>.<4D5|
00010b40  34 45 20 50 6c 75 67 49  6e 5f 4e 6f 74 69 66 79  |4E PlugIn_Notify|
00010b50  3d 3e 4d 73 67 5f 50 6c  75 67 69 6e 5f 34 44 35  |=>Msg_Plugin_4D5|
00010b60  34 45 3e 0a 3c 34 44 35  34 46 20 50 6c 75 67 49  |4E>.<4D54F PlugI|
00010b70  6e 5f 53 74 61 74 75 73  3d 3e 4d 73 67 5f 50 6c  |n_Status=>Msg_Pl|
00010b80  75 67 69 6e 5f 34 44 35  34 46 3e 0a 3c 34 44 35  |ugin_4D54F>.<4D5|
00010b90  35 30 20 50 6c 75 67 49  6e 5f 42 75 73 79 3d 3e  |50 PlugIn_Busy=>|
00010ba0  4d 73 67 5f 50 6c 75 67  69 6e 5f 34 44 35 35 30  |Msg_Plugin_4D550|
00010bb0  3e 0a 3c 34 44 35 35 31  20 50 6c 75 67 49 6e 5f  |>.<4D551 PlugIn_|
00010bc0  41 63 74 69 6f 6e 3d 3e  4d 73 67 5f 50 6c 75 67  |Action=>Msg_Plug|
00010bd0  69 6e 5f 34 44 35 35 31  3e 0a 3c 34 44 35 35 32  |in_4D551>.<4D552|
00010be0  20 50 6c 75 67 49 6e 5f  41 62 6f 72 74 3d 3e 4d  | PlugIn_Abort=>M|
00010bf0  73 67 5f 50 6c 75 67 69  6e 5f 34 44 35 35 32 3e  |sg_Plugin_4D552>|
00010c00  0a 23 45 6e 64 54 61 62  6c 65 0a 0a 23 49 6e 64  |.#EndTable..#Ind|
00010c10  65 6e 74 0a 54 68 72 6f  77 62 61 63 6b 20 50 72  |ent.Throwback Pr|
00010c20  6f 74 6f 63 6f 6c 20 3a  0a 23 49 6e 64 65 6e 74  |otocol :.#Indent|
00010c30  20 34 0a 23 54 61 62 6c  65 20 34 20 32 34 0a 3c  | 4.#Table 4 24.<|
00010c40  34 32 35 38 30 20 54 68  72 6f 77 62 61 63 6b 53  |42580 ThrowbackS|
00010c50  74 61 72 74 3d 3e 4d 73  67 5f 34 32 35 38 30 3e  |tart=>Msg_42580>|
00010c60  0a 3c 34 32 35 38 31 20  50 72 6f 63 65 73 73 69  |.<42581 Processi|
00010c70  6e 67 46 69 6c 65 3d 3e  4d 73 67 5f 34 32 35 38  |ngFile=>Msg_4258|
00010c80  31 3e 0a 3c 34 32 35 38  32 20 45 72 72 6f 72 73  |1>.<42582 Errors|
00010c90  49 6e 3d 3e 4d 73 67 5f  34 32 35 38 32 3e 0a 3c  |In=>Msg_42582>.<|
00010ca0  34 32 35 38 33 20 45 72  72 6f 72 44 65 74 61 69  |42583 ErrorDetai|
00010cb0  6c 73 3d 3e 4d 73 67 5f  34 32 35 38 33 3e 0a 3c  |ls=>Msg_42583>.<|
00010cc0  34 32 35 38 34 20 54 68  72 6f 77 62 61 63 6b 45  |42584 ThrowbackE|
00010cd0  6e 64 3d 3e 4d 73 67 5f  34 32 35 38 34 3e 0a 3c  |nd=>Msg_42584>.<|
00010ce0  34 32 35 38 35 20 49 6e  66 6f 46 6f 72 46 69 6c  |42585 InfoForFil|
00010cf0  65 3d 3e 4d 73 67 5f 34  32 35 38 35 3e 0a 3c 34  |e=>Msg_42585>.<4|
00010d00  32 35 38 36 20 49 6e 66  6f 44 65 74 61 69 6c 73  |2586 InfoDetails|
00010d10  3d 3e 4d 73 67 5f 34 32  35 38 36 3e 0a 23 45 6e  |=>Msg_42586>.#En|
00010d20  64 54 61 62 6c 65 0a 0a  23 49 6e 64 65 6e 74 0a  |dTable..#Indent.|
00010d30  3c 45 78 74 65 72 6e 61  6c 20 45 64 69 74 3d 3e  |<External Edit=>|
00010d40  4d 73 67 5f 45 78 74 45  64 69 74 3e 20 50 72 6f  |Msg_ExtEdit> Pro|
00010d50  74 6f 63 6f 6c 20 3a 0a  23 49 6e 64 65 6e 74 20  |tocol :.#Indent |
00010d60  34 0a 23 54 61 62 6c 65  20 43 6f 6c 75 6d 6e 73  |4.#Table Columns|
00010d70  20 33 0a 3c 34 35 44 38  30 20 45 64 69 74 52 71  | 3.<45D80 EditRq|
00010d80  3d 3e 4d 73 67 5f 34 35  44 38 30 3e 0a 3c 34 35  |=>Msg_45D80>.<45|
00010d90  44 38 31 20 45 64 69 74  41 63 6b 3d 3e 4d 73 67  |D81 EditAck=>Msg|
00010da0  5f 34 35 44 38 31 3e 0a  3c 34 35 44 38 32 20 45  |_45D81>.<45D82 E|
00010db0  64 69 74 52 65 74 75 72  6e 3d 3e 4d 73 67 5f 34  |ditReturn=>Msg_4|
00010dc0  35 44 38 32 3e 0a 3c 34  35 44 38 33 20 45 64 69  |5D82>.<45D83 Edi|
00010dd0  74 41 62 6f 72 74 3d 3e  4d 73 67 5f 34 35 44 38  |tAbort=>Msg_45D8|
00010de0  33 3e 0a 3c 34 35 44 38  34 20 45 64 69 74 44 61  |3>.<45D84 EditDa|
00010df0  74 61 53 61 76 65 3d 3e  4d 73 67 5f 34 35 44 38  |taSave=>Msg_45D8|
00010e00  34 3e 0a 3c 34 35 44 38  35 20 45 64 69 74 43 75  |4>.<45D85 EditCu|
00010e10  72 73 6f 72 3d 3e 4d 73  67 5f 34 35 44 38 35 3e  |rsor=>Msg_45D85>|
00010e20  0a 23 45 6e 64 54 61 62  6c 65 0a 0a 23 49 6e 64  |.#EndTable..#Ind|
00010e30  65 6e 74 0a 54 61 73 6b  77 69 6e 64 6f 77 20 50  |ent.Taskwindow P|
00010e40  72 6f 74 6f 63 6f 6c 20  3a 0a 23 49 6e 64 65 6e  |rotocol :.#Inden|
00010e50  74 20 34 0a 23 54 61 62  6c 65 20 43 6f 6c 75 6d  |t 4.#Table Colum|
00010e60  6e 73 20 33 0a 3c 38 30  38 43 30 20 54 57 5f 49  |ns 3.<808C0 TW_I|
00010e70  6e 70 75 74 3d 3e 4d 73  67 5f 38 30 38 63 30 3e  |nput=>Msg_808c0>|
00010e80  0a 3c 38 30 38 43 31 20  54 57 5f 4f 75 74 70 75  |.<808C1 TW_Outpu|
00010e90  74 3d 3e 4d 73 67 5f 38  30 38 63 31 3e 0a 3c 38  |t=>Msg_808c1>.<8|
00010ea0  30 38 43 32 20 54 57 5f  45 67 6f 3d 3e 4d 73 67  |08C2 TW_Ego=>Msg|
00010eb0  5f 38 30 38 63 32 3e 0a  3c 38 30 38 43 33 20 54  |_808c2>.<808C3 T|
00010ec0  57 5f 4d 6f 72 69 6f 3d  3e 4d 73 67 5f 38 30 38  |W_Morio=>Msg_808|
00010ed0  63 33 3e 0a 3c 38 30 38  43 34 20 54 57 5f 4d 6f  |c3>.<808C4 TW_Mo|
00010ee0  72 69 74 65 3d 3e 4d 73  67 5f 38 30 38 63 34 3e  |rite=>Msg_808c4>|
00010ef0  0a 3c 38 30 38 43 35 20  54 57 5f 4e 65 77 54 61  |.<808C5 TW_NewTa|
00010f00  73 6b 3d 3e 4d 73 67 5f  38 30 38 63 35 3e 0a 3c  |sk=>Msg_808c5>.<|
00010f10  38 30 38 43 36 20 54 57  5f 53 75 73 70 65 6e 64  |808C6 TW_Suspend|
00010f20  3d 3e 4d 73 67 5f 38 30  38 63 36 3e 0a 3c 38 30  |=>Msg_808c6>.<80|
00010f30  38 43 37 20 54 57 5f 52  65 73 75 6d 65 3d 3e 4d  |8C7 TW_Resume=>M|
00010f40  73 67 5f 38 30 38 63 37  3e 0a 23 45 6e 64 54 61  |sg_808c7>.#EndTa|
00010f50  62 6c 65 0a 0a 23 49 6e  64 65 6e 74 0a 50 72 69  |ble..#Indent.Pri|
00010f60  6e 74 20 50 72 6f 74 6f  63 6f 6c 20 3a 0a 23 49  |nt Protocol :.#I|
00010f70  6e 64 65 6e 74 20 34 0a  23 54 61 62 6c 65 20 43  |ndent 4.#Table C|
00010f80  6f 6c 75 6d 6e 73 20 33  0a 3c 38 30 31 34 30 20  |olumns 3.<80140 |
00010f90  50 72 69 6e 74 46 69 6c  65 3d 3e 4d 73 67 5f 38  |PrintFile=>Msg_8|
00010fa0  30 31 34 30 3e 0a 3c 38  30 31 34 31 20 57 69 6c  |0140>.<80141 Wil|
00010fb0  6c 50 72 69 6e 74 3d 3e  4d 73 67 5f 38 30 31 34  |lPrint=>Msg_8014|
00010fc0  31 3e 0a 3c 38 30 31 34  32 20 50 72 69 6e 74 53  |1>.<80142 PrintS|
00010fd0  61 76 65 3d 3e 4d 73 67  5f 38 30 31 34 32 3e 0a  |ave=>Msg_80142>.|
00010fe0  3c 38 30 31 34 33 20 50  72 69 6e 74 49 6e 69 74  |<80143 PrintInit|
00010ff0  3d 3e 4d 73 67 5f 38 30  31 34 33 3e 0a 3c 38 30  |=>Msg_80143>.<80|
00011000  31 34 34 20 50 72 69 6e  74 45 72 72 6f 72 3d 3e  |144 PrintError=>|
00011010  4d 73 67 5f 38 30 31 34  34 3e 0a 3c 38 30 31 34  |Msg_80144>.<8014|
00011020  35 20 50 72 69 6e 74 54  79 70 65 4f 64 64 3d 3e  |5 PrintTypeOdd=>|
00011030  4d 73 67 5f 38 30 31 34  35 3e 0a 3c 38 30 31 34  |Msg_80145>.<8014|
00011040  36 20 50 72 69 6e 74 54  79 70 65 4b 6e 6f 77 6e  |6 PrintTypeKnown|
00011050  3d 3e 4d 73 67 5f 38 30  31 34 36 3e 0a 3c 38 30  |=>Msg_80146>.<80|
00011060  31 34 37 20 53 65 74 50  72 69 6e 74 65 72 3d 3e  |147 SetPrinter=>|
00011070  4d 73 67 5f 38 30 31 34  37 3e 0a 3c 38 30 31 34  |Msg_80147>.<8014|
00011080  43 20 50 53 50 72 69 6e  74 65 72 51 75 65 72 79  |C PSPrinterQuery|
00011090  3d 3e 4d 73 67 5f 38 30  31 34 43 3e 0a 3c 38 30  |=>Msg_8014C>.<80|
000110a0  31 34 44 20 50 53 50 72  69 6e 74 65 72 41 63 6b  |14D PSPrinterAck|
000110b0  3d 3e 4d 73 67 5f 38 30  31 34 44 3e 0a 3c 38 30  |=>Msg_8014D>.<80|
000110c0  31 34 45 20 50 53 50 72  69 6e 74 65 72 4d 6f 64  |14E PSPrinterMod|
000110d0  69 66 69 65 64 3d 3e 4d  73 67 5f 38 30 31 34 45  |ified=>Msg_8014E|
000110e0  3e 0a 3c 38 30 31 34 46  20 50 53 50 72 69 6e 74  |>.<8014F PSPrint|
000110f0  65 72 44 65 66 61 75 6c  74 73 3d 3e 4d 73 67 5f  |erDefaults=>Msg_|
00011100  38 30 31 34 46 3e 0a 3c  38 30 31 35 30 20 50 53  |8014F>.<80150 PS|
00011110  50 72 69 6e 74 65 72 44  65 66 61 75 6c 74 65 64  |PrinterDefaulted|
00011120  3d 3e 4d 73 67 5f 38 30  31 35 30 3e 0a 3c 38 30  |=>Msg_80150>.<80|
00011130  31 35 31 20 50 53 50 72  69 6e 74 65 72 4e 6f 74  |151 PSPrinterNot|
00011140  50 53 3d 3e 4d 73 67 5f  38 30 31 35 31 3e 0a 3c  |PS=>Msg_80151>.<|
00011150  38 30 31 35 32 20 52 65  73 65 74 50 72 69 6e 74  |80152 ResetPrint|
00011160  65 72 3d 3e 4d 73 67 5f  38 30 31 35 32 3e 0a 3c  |er=>Msg_80152>.<|
00011170  38 30 31 35 33 20 50 53  49 73 46 6f 6e 74 50 72  |80153 PSIsFontPr|
00011180  69 6e 74 52 75 6e 6e 69  6e 67 3d 3e 4d 73 67 5f  |intRunning=>Msg_|
00011190  38 30 31 35 33 3e 0a 23  45 6e 64 54 61 62 6c 65  |80153>.#EndTable|
000111a0  0a 0a 23 49 6e 64 65 6e  74 0a 4f 4c 45 20 50 72  |..#Indent.OLE Pr|
000111b0  6f 74 6f 63 6f 6c 20 3a  0a 23 49 6e 64 65 6e 74  |otocol :.#Indent|
000111c0  20 34 0a 23 54 61 62 6c  65 20 43 6f 6c 75 6d 6e  | 4.#Table Column|
000111d0  73 20 32 0a 3c 38 30 45  31 45 20 4f 4c 45 5f 46  |s 2.<80E1E OLE_F|
000111e0  69 6c 65 43 68 61 6e 67  65 64 3d 3e 4d 73 67 5f  |ileChanged=>Msg_|
000111f0  38 30 45 31 45 3e 0a 3c  38 30 45 32 31 20 4f 4c  |80E1E>.<80E21 OL|
00011200  45 5f 4f 70 65 6e 53 65  73 73 69 6f 6e 3d 3e 4d  |E_OpenSession=>M|
00011210  73 67 5f 38 30 45 32 31  3e 0a 3c 38 30 45 32 32  |sg_80E21>.<80E22|
00011220  20 4f 4c 45 5f 4f 70 65  6e 53 65 73 73 69 6f 6e  | OLE_OpenSession|
00011230  41 63 6b 3d 3e 4d 73 67  5f 38 30 45 32 32 3e 0a  |Ack=>Msg_80E22>.|
00011240  3c 38 30 45 32 33 20 4f  4c 45 5f 43 6c 6f 73 65  |<80E23 OLE_Close|
00011250  53 65 73 73 69 6f 6e 3d  3e 4d 73 67 5f 38 30 45  |Session=>Msg_80E|
00011260  32 33 3e 0a 23 45 6e 64  54 61 62 6c 65 0a 0a 23  |23>.#EndTable..#|
00011270  49 6e 64 65 6e 74 0a 44  44 45 20 4d 61 6b 65 20  |Indent.DDE Make |
00011280  50 72 6f 74 6f 63 6f 6c  20 3a 0a 23 49 6e 64 65  |Protocol :.#Inde|
00011290  6e 74 20 34 0a 23 54 61  62 6c 65 20 43 6f 6c 75  |nt 4.#Table Colu|
000112a0  6d 6e 73 20 32 0a 3c 38  31 34 30 30 20 44 44 45  |mns 2.<81400 DDE|
000112b0  5f 54 6f 6f 6c 49 6e 66  6f 3d 3e 4d 73 67 5f 38  |_ToolInfo=>Msg_8|
000112c0  31 34 30 30 3e 0a 23 45  6e 64 54 61 62 6c 65 0a  |1400>.#EndTable.|
000112d0  0a 23 49 6e 64 65 6e 74  0a 55 52 49 20 50 72 6f  |.#Indent.URI Pro|
000112e0  74 6f 63 6f 6c 20 3a 0a  23 49 6e 64 65 6e 74 20  |tocol :.#Indent |
000112f0  34 0a 23 54 61 62 6c 65  20 43 6f 6c 75 6d 6e 73  |4.#Table Columns|
00011300  20 32 0a 3c 34 45 33 38  30 20 55 52 49 5f 4d 53  | 2.<4E380 URI_MS|
00011310  74 61 72 74 65 64 3d 3e  49 6e 65 74 53 57 49 73  |tarted=>InetSWIs|
00011320  3a 4d 73 67 5f 34 45 33  38 30 3e 0a 3c 34 45 33  |:Msg_4E380>.<4E3|
00011330  38 31 20 55 52 49 5f 4d  44 79 69 6e 67 3d 3e 49  |81 URI_MDying=>I|
00011340  6e 65 74 53 57 49 73 3a  4d 73 67 5f 34 45 33 38  |netSWIs:Msg_4E38|
00011350  31 3e 0a 3c 34 45 33 38  32 20 55 52 49 5f 4d 52  |1>.<4E382 URI_MR|
00011360  65 71 75 65 73 74 3d 3e  49 6e 65 74 53 57 49 73  |equest=>InetSWIs|
00011370  3a 4d 73 67 5f 34 45 33  38 32 3e 0a 3c 34 45 33  |:Msg_4E382>.<4E3|
00011380  38 33 20 55 52 49 5f 4d  52 65 73 75 6c 74 3d 3e  |83 URI_MResult=>|
00011390  49 6e 65 74 53 57 49 73  3a 4d 73 67 5f 34 45 33  |InetSWIs:Msg_4E3|
000113a0  38 33 3e 0a 23 45 6e 64  54 61 62 6c 65 0a 0a 23  |83>.#EndTable..#|
000113b0  49 6e 64 65 6e 74 0a 3c  4e 65 77 73 42 61 73 65  |Indent.<NewsBase|
000113c0  20 6d 61 69 6c 3d 3e 4d  73 67 5f 4e 65 77 73 42  | mail=>Msg_NewsB|
000113d0  61 73 65 3e 20 70 72 6f  74 6f 63 6f 6c 20 3a 0a  |ase> protocol :.|
000113e0  23 49 6e 64 65 6e 74 20  34 0a 23 54 61 62 6c 65  |#Indent 4.#Table|
000113f0  20 43 6f 6c 75 6d 6e 73  20 32 0a 3c 38 33 35 38  | Columns 2.<8358|
00011400  30 20 4e 65 77 73 42 61  73 65 5f 43 6f 6d 6d 61  |0 NewsBase_Comma|
00011410  6e 64 3d 3e 4d 73 67 5f  38 33 35 38 30 3e 0a 3c  |nd=>Msg_83580>.<|
00011420  38 33 35 38 31 20 4e 65  77 73 42 61 73 65 5f 52  |83581 NewsBase_R|
00011430  65 70 6c 79 3d 3e 4d 73  67 5f 38 33 35 38 31 3e  |eply=>Msg_83581>|
00011440  0a 3c 38 33 35 38 32 20  4e 65 77 73 42 61 73 65  |.<83582 NewsBase|
00011450  5f 55 70 64 61 74 65 3d  3e 4d 73 67 5f 38 33 35  |_Update=>Msg_835|
00011460  38 32 3e 0a 23 45 6e 64  54 61 62 6c 65 0a 0a 23  |82>.#EndTable..#|
00011470  49 6e 64 65 6e 74 0a 49  52 43 6c 69 65 6e 74 20  |Indent.IRClient |
00011480  70 72 6f 74 6f 63 6f 6c  20 3a 0a 23 49 6e 64 65  |protocol :.#Inde|
00011490  6e 74 20 34 0a 23 54 61  62 6c 65 20 43 6f 6c 75  |nt 4.#Table Colu|
000114a0  6d 6e 73 20 32 0a 3c 44  41 42 30 30 20 49 52 43  |mns 2.<DAB00 IRC|
000114b0  5f 53 65 6e 64 44 61 74  61 3d 3e 4d 73 67 5f 44  |_SendData=>Msg_D|
000114c0  41 42 30 30 3e 0a 3c 44  41 42 30 31 20 49 52 43  |AB00>.<DAB01 IRC|
000114d0  5f 53 65 6e 64 52 61 77  44 61 74 61 3d 3e 4d 73  |_SendRawData=>Ms|
000114e0  67 5f 44 41 42 30 31 3e  0a 23 45 6e 64 54 61 62  |g_DAB01>.#EndTab|
000114f0  6c 65 0a 00 44 41 54 41  f3 00 00 00 4d 65 73 73  |le..DATA....Mess|
00011500  61 67 65 5f 44 65 76 69  63 65 43 6c 61 69 6d 20  |age_DeviceClaim |
00011510  20 28 31 31 29 0a 23 50  61 72 65 6e 74 20 4d 53  | (11).#Parent MS|
00011520  47 5f 0a 32 30 09 3c 6d  61 6a 6f 72 20 64 65 76  |G_.20.<major dev|
00011530  69 63 65 20 6e 75 6d 62  65 72 3d 3e 64 65 76 69  |ice number=>devi|
00011540  63 65 73 3e 0a 32 34 09  3c 6d 69 6e 6f 72 20 64  |ces>.24.<minor d|
00011550  65 76 69 63 65 20 6e 75  6d 62 65 72 3d 3e 64 65  |evice number=>de|
00011560  76 69 63 65 73 3e 0a 32  38 09 69 6e 66 6f 72 6d  |vices>.28.inform|
00011570  61 74 69 6f 6e 20 73 74  72 69 6e 67 20 28 7a 65  |ation string (ze|
00011580  72 6f 2d 74 65 72 6d 69  6e 61 74 65 64 29 0a 0a  |ro-terminated)..|
00011590  54 68 69 73 20 6d 65 73  73 61 67 65 20 69 73 20  |This message is |
000115a0  62 72 6f 61 64 63 61 73  74 20 62 79 20 61 20 74  |broadcast by a t|
000115b0  61 73 6b 20 77 69 73 68  69 6e 67 20 74 6f 20 63  |ask wishing to c|
000115c0  6c 61 69 6d 20 65 78 63  6c 75 73 69 76 65 20 75  |laim exclusive u|
000115d0  73 65 20 6f 66 20 61 20  73 79 73 74 65 6d 20 64  |se of a system d|
000115e0  65 76 69 63 65 2e 0a 00  44 41 54 41 c6 01 00 00  |evice...DATA....|
000115f0  4d 65 73 73 61 67 65 5f  44 65 76 69 63 65 49 6e  |Message_DeviceIn|
00011600  55 73 65 20 20 28 31 32  29 0a 23 50 61 72 65 6e  |Use  (12).#Paren|
00011610  74 20 4d 53 47 5f 0a 2b  20 32 30 09 3c 6d 61 6a  |t MSG_.+ 20.<maj|
00011620  6f 72 20 64 65 76 69 63  65 20 6e 75 6d 62 65 72  |or device number|
00011630  3d 3e 44 65 76 69 63 65  73 3e 0a 2b 20 32 34 09  |=>Devices>.+ 24.|
00011640  3c 6d 69 6e 6f 72 20 64  65 76 69 63 65 20 6e 75  |<minor device nu|
00011650  6d 62 65 72 3d 3e 44 65  76 69 63 65 73 3e 0a 2b  |mber=>Devices>.+|
00011660  20 32 38 09 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  | 28.information |
00011670  73 74 72 69 6e 67 20 28  7a 65 72 6f 2d 74 65 72  |string (zero-ter|
00011680  6d 69 6e 61 74 65 64 29  0a 0a 54 68 69 73 20 6d  |minated)..This m|
00011690  65 73 73 61 67 65 20 69  73 20 73 65 6e 74 20 69  |essage is sent i|
000116a0  6e 20 72 65 73 70 6f 6e  73 65 20 74 6f 20 61 20  |n response to a |
000116b0  3c 4d 65 73 73 61 67 65  5f 44 65 76 69 63 65 43  |<Message_DeviceC|
000116c0  6c 61 69 6d 3d 3e 4d 73  67 5f 42 3e 2c 20 69 66  |laim=>Msg_B>, if|
000116d0  20 74 68 65 20 72 65 63  65 69 76 65 72 20 64 6f  | the receiver do|
000116e0  65 73 20 6e 6f 74 20 77  61 6e 74 20 74 68 65 20  |es not want the |
000116f0  63 6c 61 69 6d 61 6e 74  20 74 6f 20 67 61 69 6e  |claimant to gain|
00011700  20 65 78 63 6c 75 73 69  76 65 20 75 73 65 20 6f  | exclusive use o|
00011710  66 20 61 20 64 65 76 69  63 65 20 28 69 2e 65 2e  |f a device (i.e.|
00011720  20 69 74 27 73 20 61 6c  72 65 61 64 79 20 75 73  | it's already us|
00011730  69 6e 67 20 69 74 29 2e  0a 0a 54 68 65 20 69 6e  |ing it)...The in|
00011740  66 6f 72 6d 61 74 69 6f  6e 20 73 74 72 69 6e 67  |formation string|
00011750  20 73 68 6f 75 6c 64 20  62 65 20 75 73 65 64 20  | should be used |
00011760  74 6f 20 67 69 76 65 20  69 6e 66 6f 72 6d 61 74  |to give informat|
00011770  69 6f 6e 20 61 73 20 74  6f 20 77 68 79 20 74 68  |ion as to why th|
00011780  65 20 63 6c 61 69 6d 20  68 61 73 20 66 61 69 6c  |e claim has fail|
00011790  65 64 2c 20 65 2e 67 2e  20 27 50 72 69 6e 74 65  |ed, e.g. 'Printe|
000117a0  72 20 69 73 20 61 63 74  69 76 65 27 2e 0a 00 00  |r is active'....|
000117b0  44 41 54 41 ae 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
000117c0  43 6c 61 69 6d 45 6e 74  69 74 79 20 20 28 26 46  |ClaimEntity  (&F|
000117d0  29 0a 23 50 61 72 65 6e  74 20 4d 53 47 5f 0a 32  |).#Parent MSG_.2|
000117e0  30 09 3c 66 6c 61 67 73  3d 3e 2e 66 6c 61 67 73  |0.<flags=>.flags|
000117f0  3e 0a 0a 54 68 69 73 20  6d 65 73 73 61 67 65 20  |>..This message |
00011800  73 68 6f 75 6c 64 20 62  65 20 62 72 6f 61 64 63  |should be broadc|
00011810  61 73 74 20 74 6f 20 61  6c 6c 20 74 61 73 6b 73  |ast to all tasks|
00011820  20 77 68 65 6e 20 79 6f  75 72 20 61 70 70 6c 69  | when your appli|
00011830  63 61 74 69 6f 6e 20 63  6c 61 69 6d 73 20 74 68  |cation claims th|
00011840  65 20 63 61 72 65 74 2f  73 65 6c 65 63 74 69 6f  |e caret/selectio|
00011850  6e 20 6f 72 20 63 6c 69  70 62 6f 61 72 64 2e 0a  |n or clipboard..|
00011860  0a 50 61 72 74 20 6f 66  20 74 68 65 20 7b 2f 7d  |.Part of the {/}|
00011870  52 49 53 43 20 4f 53 20  53 65 6c 65 63 74 69 6f  |RISC OS Selectio|
00011880  6e 20 4d 6f 64 65 6c 20  61 6e 64 20 43 6c 69 70  |n Model and Clip|
00011890  62 6f 61 72 64 7b 2f 7d  20 70 72 6f 74 6f 63 6f  |board{/} protoco|
000118a0  6c 2e 0a 23 53 75 62 70  61 67 65 20 66 6c 61 67  |l..#Subpage flag|
000118b0  73 0a 4d 65 73 73 61 67  65 5f 43 6c 61 69 6d 45  |s.Message_ClaimE|
000118c0  6e 74 69 74 79 20 66 6c  61 67 73 0a 42 69 74 09  |ntity flags.Bit.|
000118d0  4d 65 61 6e 69 6e 67 20  69 66 20 73 65 74 0a 23  |Meaning if set.#|
000118e0  4c 69 6e 65 0a 30 20 61  6e 64 20 31 09 63 61 72  |Line.0 and 1.car|
000118f0  65 74 20 6f 72 20 73 65  6c 65 63 74 69 6f 6e 20  |et or selection |
00011900  62 65 69 6e 67 20 63 6c  61 69 6d 65 64 0a 32 09  |being claimed.2.|
00011910  63 6c 69 70 62 6f 61 72  64 20 62 65 69 6e 67 20  |clipboard being |
00011920  63 6c 61 69 6d 65 64 0a  0a 41 6c 6c 20 6f 74 68  |claimed..All oth|
00011930  65 72 20 62 69 74 73 20  61 72 65 20 72 65 73 65  |er bits are rese|
00011940  72 76 65 64 20 61 6e 64  20 6d 75 73 74 20 62 65  |rved and must be|
00011950  20 73 65 74 20 74 6f 20  7a 65 72 6f 2e 0a 00 00  | set to zero....|
00011960  44 41 54 41 1f 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00011970  54 61 73 6b 53 74 61 72  74 65 64 20 20 28 26 34  |TaskStarted  (&4|
00011980  30 30 43 38 29 0a 54 68  69 73 20 6d 65 73 73 61  |00C8).This messa|
00011990  67 65 20 69 73 20 73 65  6e 74 20 62 79 20 74 68  |ge is sent by th|
000119a0  65 20 46 69 6c 65 72 20  6f 6e 63 65 20 69 74 20  |e Filer once it |
000119b0  68 61 73 20 73 74 61 72  74 65 64 20 75 70 20 61  |has started up a|
000119c0  6c 6c 20 6f 66 20 74 68  65 20 64 65 73 6b 74 6f  |ll of the deskto|
000119d0  70 20 66 69 6c 65 72 73  20 73 6f 20 74 68 61 74  |p filers so that|
000119e0  20 74 68 65 20 54 61 73  6b 20 4d 61 6e 61 67 65  | the Task Manage|
000119f0  72 20 63 61 6e 20 27 72  65 6e 75 6d 62 65 72 27  |r can 'renumber'|
00011a00  20 69 74 2e 20 20 54 68  69 73 20 69 73 20 64 6f  | it.  This is do|
00011a10  6e 65 20 73 6f 20 74 68  61 74 20 64 75 72 69 6e  |ne so that durin|
00011a20  67 20 74 68 65 20 53 61  76 65 44 65 73 6b 74 6f  |g the SaveDeskto|
00011a30  70 20 73 65 71 75 65 6e  63 65 20 74 68 65 20 46  |p sequence the F|
00011a40  69 6c 65 72 27 73 20 6f  77 6e 20 63 6f 6d 6d 61  |iler's own comma|
00011a50  6e 64 73 20 63 61 6e 20  62 65 20 70 65 72 66 6f  |nds can be perfo|
00011a60  72 6d 65 64 20 61 66 74  65 72 20 61 6e 79 20 6e  |rmed after any n|
00011a70  65 74 77 6f 72 6b 20 6c  6f 67 6f 6e 73 2e 0a 00  |etwork logons...|
00011a80  44 49 52 24 d4 02 00 00  d4 02 00 00 54 1d 01 00  |DIR$........T...|
00011a90  48 fd ff ff 9f 0e 71 1a  ab 04 00 00 03 00 00 00  |H.....q.........|
00011aa0  00 00 00 00 34 44 35 34  30 00 00 00 00 22 01 00  |....4D540...."..|
00011ab0  48 fd ff ff 2b 1a 71 1a  10 04 00 00 03 00 00 00  |H...+.q.........|
00011ac0  00 00 00 00 34 44 35 34  31 00 00 00 10 26 01 00  |....4D541....&..|
00011ad0  48 fd ff ff ce 2d 71 1a  01 01 00 00 03 00 00 00  |H....-q.........|
00011ae0  00 00 00 00 34 44 35 34  32 00 00 00 14 27 01 00  |....4D542....'..|
00011af0  48 fd ff ff 10 35 71 1a  39 02 00 00 03 00 00 00  |H....5q.9.......|
00011b00  00 00 00 00 34 44 35 34  33 00 00 00 50 29 01 00  |....4D543...P)..|
00011b10  48 fd ff ff f1 b0 5c 04  8b 01 00 00 03 00 00 00  |H.....\.........|
00011b20  00 00 00 00 34 44 35 34  34 00 00 00 dc 2a 01 00  |....4D544....*..|
00011b30  48 fd ff ff 81 a5 5c 04  e5 00 00 00 03 00 00 00  |H.....\.........|
00011b40  00 00 00 00 34 44 35 34  35 00 00 00 c4 2b 01 00  |....4D545....+..|
00011b50  48 fd ff ff 55 a0 5c 04  f9 01 00 00 03 00 00 00  |H...U.\.........|
00011b60  00 00 00 00 34 44 35 34  36 00 00 00 c0 2d 01 00  |....4D546....-..|
00011b70  48 fd ff ff d0 a6 71 1a  03 01 00 00 03 00 00 00  |H.....q.........|
00011b80  00 00 00 00 34 44 35 34  37 00 00 00 c4 2e 01 00  |....4D547.......|
00011b90  48 fd ff ff 7c 71 70 1a  f0 02 00 00 03 00 00 00  |H...|qp.........|
00011ba0  00 00 00 00 34 64 35 34  38 00 00 00 b4 31 01 00  |....4d548....1..|
00011bb0  48 fd ff ff 5e 80 70 1a  6b 02 00 00 03 00 00 00  |H...^.p.k.......|
00011bc0  00 00 00 00 34 64 35 34  39 00 00 00 20 34 01 00  |....4d549... 4..|
00011bd0  48 fd ff ff fd 8b 70 1a  ae 02 00 00 03 00 00 00  |H.....p.........|
00011be0  00 00 00 00 34 64 35 34  61 00 00 00 d0 36 01 00  |....4d54a....6..|
00011bf0  48 fd ff ff 11 90 70 1a  48 02 00 00 03 00 00 00  |H.....p.H.......|
00011c00  00 00 00 00 34 64 35 34  62 00 00 00 18 39 01 00  |....4d54b....9..|
00011c10  48 fd ff ff 37 93 70 1a  31 02 00 00 03 00 00 00  |H...7.p.1.......|
00011c20  00 00 00 00 34 64 35 34  63 00 00 00 4c 3b 01 00  |....4d54c...L;..|
00011c30  48 fd ff ff 96 81 71 1a  6e 03 00 00 03 00 00 00  |H.....q.n.......|
00011c40  00 00 00 00 34 44 35 34  44 00 00 00 bc 3e 01 00  |....4D54D....>..|
00011c50  48 fd ff ff 9d ab 71 1a  9d 01 00 00 03 00 00 00  |H.....q.........|
00011c60  00 00 00 00 34 44 35 34  45 00 00 00 5c 40 01 00  |....4D54E...\@..|
00011c70  48 fd ff ff 35 aa 71 1a  74 01 00 00 03 00 00 00  |H...5.q.t.......|
00011c80  00 00 00 00 34 44 35 34  46 00 00 00 d0 41 01 00  |....4D54F....A..|
00011c90  48 fd ff ff 9f 92 71 1a  20 03 00 00 03 00 00 00  |H.....q. .......|
00011ca0  00 00 00 00 34 44 35 35  30 00 00 00 f0 44 01 00  |....4D550....D..|
00011cb0  48 fd ff ff dc 98 71 1a  be 02 00 00 03 00 00 00  |H.....q.........|
00011cc0  00 00 00 00 34 44 35 35  31 00 00 00 b0 47 01 00  |....4D551....G..|
00011cd0  48 fd ff ff 1d 9b 71 1a  42 02 00 00 03 00 00 00  |H.....q.B.......|
00011ce0  00 00 00 00 34 44 35 35  32 00 00 00 f4 49 01 00  |....4D552....I..|
00011cf0  48 fd ff ff 31 dd 70 1a  d3 08 00 00 33 00 00 00  |H...1.p.....3...|
00011d00  00 00 00 00 66 6f 72 6d  61 74 73 00 c8 52 01 00  |....formats..R..|
00011d10  48 fd ff ff d7 f4 70 1a  ec 04 00 00 33 00 00 00  |H.....p.....3...|
00011d20  00 00 00 00 21 72 6f 6f  74 00 00 00 b4 57 01 00  |....!root....W..|
00011d30  48 fd ff ff 86 2d 5e 1b  54 03 00 00 33 00 00 00  |H....-^.T...3...|
00011d40  00 00 00 00 73 74 72 69  6e 67 5f 76 61 6c 75 65  |....string_value|
00011d50  00 00 00 00 44 41 54 41  ab 04 00 00 4d 65 73 73  |....DATA....Mess|
00011d60  61 67 65 5f 50 6c 75 67  49 6e 5f 4f 70 65 6e 20  |age_PlugIn_Open |
00011d70  20 28 26 34 44 35 34 30  29 0a 52 31 2b 31 36 09  | (&4D540).R1+16.|
00011d80  4d 65 73 73 61 67 65 5f  50 6c 75 67 49 6e 5f 4f  |Message_PlugIn_O|
00011d90  70 65 6e 20 28 26 34 44  35 34 30 29 0a 0a 43 6f  |pen (&4D540)..Co|
00011da0  6d 6d 6f 6e 20 66 69 65  6c 64 73 3a 0a 52 31 2b  |mmon fields:.R1+|
00011db0  32 30 09 46 6c 61 67 20  62 69 74 73 3a 0a 09 20  |20.Flag bits:.. |
00011dc0  20 30 3a 09 53 65 74 3b  20 6f 70 65 6e 20 74 68  | 0:.Set; open th|
00011dd0  65 20 66 69 6c 65 20 61  73 20 61 20 68 65 6c 70  |e file as a help|
00011de0  65 72 0a 09 20 09 43 6c  65 61 72 3b 20 6f 70 65  |er.. .Clear; ope|
00011df0  6e 20 74 68 65 20 66 69  6c 65 20 61 73 20 61 20  |n the file as a |
00011e00  70 6c 75 67 69 6e 0a 09  20 20 31 2d 33 31 3a 09  |plugin..  1-31:.|
00011e10  72 65 73 65 72 76 65 64  20 28 6d 75 73 74 20 62  |reserved (must b|
00011e20  65 20 7a 65 72 6f 29 0a  52 31 2b 32 38 09 42 72  |e zero).R1+28.Br|
00011e30  6f 77 73 65 72 20 69 6e  73 74 61 6e 63 65 20 68  |owser instance h|
00011e40  61 6e 64 6c 65 20 28 70  72 6f 76 69 64 65 64 20  |andle (provided |
00011e50  62 79 20 74 68 65 20 62  72 6f 77 73 65 72 29 0a  |by the browser).|
00011e60  52 31 2b 33 32 09 50 61  72 65 6e 74 20 77 69 6e  |R1+32.Parent win|
00011e70  64 6f 77 20 68 61 6e 64  6c 65 0a 52 31 2b 33 36  |dow handle.R1+36|
00011e80  09 4c 65 66 74 09 7b 2f  7d 28 62 6f 75 6e 64 69  |.Left.{/}(boundi|
00011e90  6e 67 20 62 6f 78 7b 2f  7d 0a 52 31 2b 34 30 09  |ng box{/}.R1+40.|
00011ea0  42 6f 74 74 6f 6d 09 7b  2f 7d 20 69 6e 20 70 61  |Bottom.{/} in pa|
00011eb0  72 65 6e 74 27 73 7b 2f  7d 0a 52 31 2b 34 34 09  |rent's{/}.R1+44.|
00011ec0  52 69 67 68 74 09 7b 2f  7d 20 77 6f 72 6b 20 61  |Right.{/} work a|
00011ed0  72 65 61 7b 2f 7d 0a 52  31 2b 34 38 09 54 6f 70  |rea{/}.R1+48.Top|
00011ee0  09 7b 2f 7d 20 63 6f 2d  6f 72 64 69 6e 61 74 65  |.{/} co-ordinate|
00011ef0  73 29 7b 2f 7d 0a 52 31  2b 35 32 09 3c 46 69 6c  |s){/}.R1+52.<Fil|
00011f00  65 20 74 79 70 65 3d 3e  46 69 6c 65 74 79 70 65  |e type=>Filetype|
00011f10  73 3a 21 52 6f 6f 74 3e  0a 52 31 2b 35 36 09 46  |s:!Root>.R1+56.F|
00011f20  69 6c 65 6e 61 6d 65 20  28 3c 73 74 72 69 6e 67  |ilename (<string|
00011f30  5f 76 61 6c 75 65 3d 3e  6d 73 67 5f 70 6c 75 67  |_value=>msg_plug|
00011f40  69 6e 5f 73 74 72 69 6e  67 5f 76 61 6c 75 65 3e  |in_string_value>|
00011f50  29 0a 0a 53 65 6e 74 20  62 79 20 74 68 65 20 62  |)..Sent by the b|
00011f60  72 6f 77 73 65 72 20 74  6f 20 63 72 65 61 74 65  |rowser to create|
00011f70  20 61 20 70 6c 75 67 69  6e 20 69 6e 73 74 61 6e  | a plugin instan|
00011f80  63 65 2e 0a 0a 54 68 65  20 66 69 6c 65 20 73 70  |ce...The file sp|
00011f90  65 63 69 66 69 65 64 20  61 74 20 52 31 2b 35 36  |ecified at R1+56|
00011fa0  20 63 6f 6e 74 61 69 6e  73 20 61 20 73 70 65 72  | contains a sper|
00011fb0  69 65 73 20 6f 66 20 70  61 72 61 6d 65 74 65 72  |ies of parameter|
00011fc0  73 20 69 6e 20 74 68 65  20 66 6f 72 6d 20 6f 66  |s in the form of|
00011fd0  20 6e 61 6d 65 2d 76 61  6c 75 65 20 70 61 69 72  | name-value pair|
00011fe0  73 2e 20 20 54 68 69 73  20 64 61 74 61 20 69 73  |s.  This data is|
00011ff0  20 74 68 65 20 6c 69 73  74 20 6f 66 20 61 74 74  | the list of att|
00012000  72 69 62 75 74 65 73 20  61 6e 64 20 70 61 72 61  |ributes and para|
00012010  6d 65 74 65 72 73 20 66  72 6f 6d 20 74 68 65 20  |meters from the |
00012020  41 50 50 4c 45 54 2c 20  4f 42 4a 45 43 54 20 6f  |APPLET, OBJECT o|
00012030  72 20 45 4d 42 45 44 20  74 61 67 20 2d 20 73 65  |r EMBED tag - se|
00012040  65 20 74 68 65 69 72 20  72 65 73 70 65 63 74 69  |e their respecti|
00012050  76 65 20 64 65 66 69 6e  69 74 69 6f 6e 73 2e 20  |ve definitions. |
00012060  20 54 68 69 73 20 64 61  74 61 20 69 73 20 75 73  | This data is us|
00012070  65 64 20 62 79 20 74 68  65 20 70 6c 75 67 69 6e  |ed by the plugin|
00012080  20 74 6f 20 75 6e 64 65  72 73 74 61 6e 64 20 77  | to understand w|
00012090  68 61 74 20 69 73 20 62  65 69 6e 67 20 72 65 71  |hat is being req|
000120a0  75 65 73 74 65 64 20 6f  66 20 69 74 20 2d 20 73  |uested of it - s|
000120b0  65 65 20 3c 68 65 72 65  3d 3e 6d 73 67 5f 70 6c  |ee <here=>msg_pl|
000120c0  75 67 69 6e 5f 66 6f 72  6d 61 74 73 3e 20 66 6f  |ugin_formats> fo|
000120d0  72 20 64 65 74 61 69 6c  73 2e 0a 0a 49 66 20 62  |r details...If b|
000120e0  69 74 20 30 20 6f 66 20  74 68 65 20 66 6c 61 67  |it 0 of the flag|
000120f0  73 20 77 6f 72 64 20 69  73 20 73 65 74 20 74 68  |s word is set th|
00012100  65 6e 20 74 68 69 73 20  69 73 20 61 20 72 65 71  |en this is a req|
00012110  75 65 73 74 20 74 6f 20  6f 70 65 6e 20 74 68 65  |uest to open the|
00012120  20 66 69 6c 65 20 61 73  20 61 20 68 65 6c 70 65  | file as a helpe|
00012130  72 20 61 70 70 6c 69 61  74 69 6f 6e 2e 20 20 69  |r appliation.  i|
00012140  2e 65 2e 20 65 78 74 65  72 6e 61 6c 20 74 6f 20  |.e. external to |
00012150  74 68 65 20 70 61 72 65  6e 74 20 61 70 70 6c 69  |the parent appli|
00012160  63 61 74 69 6f 6e 2e 20  20 49 6e 20 74 68 69 73  |cation.  In this|
00012170  20 63 61 73 65 20 74 68  65 20 62 6f 75 6e 64 69  | case the boundi|
00012180  6e 67 20 62 6f 78 20 28  6f 66 66 73 65 74 20 62  |ng box (offset b|
00012190  79 74 65 73 20 33 35 20  74 6f 20 35 31 29 20 61  |ytes 35 to 51) a|
000121a0  72 65 20 69 6e 76 61 6c  69 64 2e 20 20 54 68 65  |re invalid.  The|
000121b0  20 70 61 72 65 6e 74 20  77 69 6e 64 6f 77 20 68  | parent window h|
000121c0  61 6e 64 6c 65 20 6d 61  79 20 62 65 20 76 61 6c  |andle may be val|
000121d0  69 64 20 6f 72 20 30 20  64 65 70 65 6e 64 69 6e  |id or 0 dependin|
000121e0  67 20 6f 6e 20 68 6f 77  20 74 68 65 20 66 69 6c  |g on how the fil|
000121f0  65 20 69 73 20 6c 61 75  6e 63 68 65 64 2e 0a 00  |e is launched...|
00012200  44 41 54 41 10 04 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00012210  50 6c 75 67 49 6e 5f 4f  70 65 6e 69 6e 67 20 20  |PlugIn_Opening  |
00012220  28 26 34 44 35 34 31 29  0a 52 31 2b 31 32 09 6d  |(&4D541).R1+12.m|
00012230  79 5f 72 65 66 20 66 69  65 6c 64 20 66 72 6f 6d  |y_ref field from|
00012240  20 4d 65 73 73 61 67 65  5f 50 6c 75 67 49 6e 5f  | Message_PlugIn_|
00012250  4f 70 65 6e 0a 52 31 2b  31 36 09 4d 65 73 73 61  |Open.R1+16.Messa|
00012260  67 65 5f 50 6c 75 67 49  6e 5f 4f 70 65 6e 69 6e  |ge_PlugIn_Openin|
00012270  67 20 28 26 34 44 35 34  31 29 0a 0a 43 6f 6d 6d  |g (&4D541)..Comm|
00012280  6f 6e 20 66 69 65 6c 64  73 3a 0a 52 31 2b 32 30  |on fields:.R1+20|
00012290  09 46 6c 61 67 20 62 69  74 73 0a 09 20 20 30 3a  |.Flag bits..  0:|
000122a0  09 53 65 74 3b 20 70 6c  75 67 69 6e 20 63 61 6e  |.Set; plugin can|
000122b0  20 61 63 63 65 70 74 20  69 6e 70 75 74 20 66 6f  | accept input fo|
000122c0  63 75 73 0a 09 20 09 43  6c 65 61 72 3b 20 70 6c  |cus.. .Clear; pl|
000122d0  75 67 69 6e 20 63 61 6e  6e 6f 74 20 75 73 65 20  |ugin cannot use |
000122e0  69 6e 70 75 74 20 66 6f  63 75 73 0a 09 20 20 31  |input focus..  1|
000122f0  3a 09 53 65 74 3b 20 70  6c 75 67 69 6e 20 77 61  |:.Set; plugin wa|
00012300  6e 74 73 20 63 6f 64 65  20 72 65 73 6f 75 72 63  |nts code resourc|
00012310  65 73 20 66 65 74 63 68  65 64 0a 09 20 09 43 6c  |es fetched.. .Cl|
00012320  65 61 72 3b 20 70 6c 75  67 69 6e 20 77 69 6c 6c  |ear; plugin will|
00012330  20 66 65 74 63 68 20 63  6f 64 65 20 72 65 73 6f  | fetch code reso|
00012340  75 72 63 65 73 20 69 74  73 65 6c 66 0a 09 20 20  |urces itself..  |
00012350  32 3a 09 53 65 74 3b 20  70 6c 75 67 69 6e 20 77  |2:.Set; plugin w|
00012360  61 6e 74 73 20 64 61 74  61 20 72 65 73 6f 75 72  |ants data resour|
00012370  63 65 73 20 66 65 74 63  68 65 64 0a 09 20 09 43  |ces fetched.. .C|
00012380  6c 65 61 72 3b 20 70 6c  75 67 69 6e 20 77 69 6c  |lear; plugin wil|
00012390  6c 20 66 65 74 63 68 20  64 61 74 61 20 72 65 73  |l fetch data res|
000123a0  6f 75 72 63 65 73 20 69  74 73 65 6c 66 0a 09 20  |ources itself.. |
000123b0  20 33 3a 09 53 65 74 3b  20 70 6c 75 67 69 6e 20  | 3:.Set; plugin |
000123c0  77 69 6c 6c 20 64 65 6c  65 74 65 20 74 68 65 20  |will delete the |
000123d0  70 61 72 61 6d 65 74 65  72 20 66 69 6c 65 20 69  |parameter file i|
000123e0  74 73 65 6c 66 0a 09 20  09 43 6c 65 61 72 3b 20  |tself.. .Clear; |
000123f0  70 61 72 65 6e 74 20 73  68 6f 75 6c 64 20 64 65  |parent should de|
00012400  6c 65 74 65 20 70 61 72  65 6d 65 74 65 72 20 66  |lete paremeter f|
00012410  69 6c 65 20 6e 6f 77 0a  09 20 20 34 3a 09 53 65  |ile now..  4:.Se|
00012420  74 3b 20 70 6c 75 67 69  6e 20 68 61 73 20 6d 6f  |t; plugin has mo|
00012430  72 65 20 77 6f 72 6b 20  74 6f 20 64 6f 2c 20 6b  |re work to do, k|
00012440  65 65 70 20 73 68 6f 77  69 6e 67 20 62 75 73 79  |eep showing busy|
00012450  20 69 6e 64 69 63 61 74  6f 72 0a 09 20 09 43 6c  | indicator.. .Cl|
00012460  65 61 72 3b 20 70 6c 75  67 69 6e 20 69 73 20 6c  |ear; plugin is l|
00012470  6f 61 64 65 64 0a 09 20  20 35 3a 09 53 65 74 3b  |oaded..  5:.Set;|
00012480  20 70 6c 75 67 69 6e 20  75 6e 64 65 72 73 74 61  | plugin understa|
00012490  6e 64 73 20 3c 50 6c 75  67 49 6e 5f 41 63 74 69  |nds <PlugIn_Acti|
000124a0  6f 6e 3d 3e 4d 73 67 5f  50 6c 75 67 49 6e 5f 34  |on=>Msg_PlugIn_4|
000124b0  44 35 35 31 3e 20 6d 65  73 73 61 67 65 20 62 65  |D551> message be|
000124c0  79 6f 6e 64 20 74 68 65  20 2f 73 74 6f 70 2f 20  |yond the /stop/ |
000124d0  72 65 61 73 6f 6e 20 63  6f 64 65 0a 09 20 09 43  |reason code.. .C|
000124e0  6c 65 61 72 3b 20 70 6c  75 67 69 6e 20 75 6e 64  |lear; plugin und|
000124f0  65 72 73 74 61 6e 64 73  20 61 74 20 6d 6f 73 74  |erstands at most|
00012500  20 2f 73 74 6f 70 2f 0a  09 42 69 74 20 36 3a 09  | /stop/..Bit 6:.|
00012510  53 65 74 3b 20 70 6c 75  67 69 6e 20 74 61 73 6b  |Set; plugin task|
00012520  20 68 61 73 20 6f 70 65  6e 65 64 20 61 20 68 65  | has opened a he|
00012530  6c 70 65 72 20 77 69 6e  64 6f 77 0a 09 20 09 43  |lper window.. .C|
00012540  6c 65 61 72 3b 20 70 6c  75 67 69 6e 20 68 61 73  |lear; plugin has|
00012550  20 65 6d 62 65 64 64 65  64 20 69 74 73 65 6c 66  | embedded itself|
00012560  20 69 6e 20 74 68 65 20  70 61 72 65 6e 74 20 77  | in the parent w|
00012570  69 6e 64 6f 77 0a 09 42  69 74 73 20 37 2d 33 31  |indow..Bits 7-31|
00012580  3a 09 72 65 73 65 72 76  65 64 20 28 6d 75 73 74  |:.reserved (must|
00012590  20 62 65 20 7a 65 72 6f  29 0a 52 31 2b 32 34 09  | be zero).R1+24.|
000125a0  50 6c 75 67 49 6e 20 69  6e 73 74 61 6e 63 65 20  |PlugIn instance |
000125b0  68 61 6e 64 6c 65 20 28  69 6e 76 65 6e 74 65 64  |handle (invented|
000125c0  20 62 79 20 74 68 65 20  50 6c 75 67 49 6e 29 0a  | by the PlugIn).|
000125d0  52 31 2b 32 38 09 42 72  6f 77 73 65 72 20 69 6e  |R1+28.Browser in|
000125e0  73 74 61 6e 63 65 20 68  61 6e 64 6c 65 20 28 63  |stance handle (c|
000125f0  6f 70 69 65 64 20 66 72  6f 6d 20 4d 65 73 73 61  |opied from Messa|
00012600  67 65 5f 50 6c 75 67 49  6e 5f 4f 70 65 6e 29 0a  |ge_PlugIn_Open).|
00012610  44 41 54 41 01 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00012620  50 6c 75 67 49 6e 5f 43  6c 6f 73 65 20 20 28 26  |PlugIn_Close  (&|
00012630  34 44 35 34 32 29 0a 52  31 2b 31 36 09 4d 65 73  |4D542).R1+16.Mes|
00012640  73 61 67 65 5f 50 6c 75  67 49 6e 5f 43 6c 6f 73  |sage_PlugIn_Clos|
00012650  65 20 28 26 34 44 35 34  32 29 0a 0a 43 6f 6d 6d  |e (&4D542)..Comm|
00012660  6f 6e 20 66 69 65 6c 64  73 3a 0a 52 31 2b 32 30  |on fields:.R1+20|
00012670  09 46 6c 61 67 20 62 69  74 73 0a 09 20 20 30 3a  |.Flag bits..  0:|
00012680  09 53 65 74 3b 20 42 72  6f 77 73 65 72 20 77 6f  |.Set; Browser wo|
00012690  75 6c 64 20 61 6c 73 6f  20 6c 69 6b 65 20 50 6c  |uld also like Pl|
000126a0  75 67 49 6e 20 74 6f 20  65 78 69 74 0a 09 20 20  |ugIn to exit..  |
000126b0  31 2d 33 31 3a 09 72 65  73 65 72 76 65 64 20 28  |1-31:.reserved (|
000126c0  6d 75 73 74 20 62 65 20  7a 65 72 6f 29 0a 52 31  |must be zero).R1|
000126d0  2b 32 34 09 50 6c 75 67  49 6e 20 69 6e 73 74 61  |+24.PlugIn insta|
000126e0  6e 63 65 20 68 61 6e 64  6c 65 20 74 6f 20 63 6c  |nce handle to cl|
000126f0  6f 73 65 0a 52 31 2b 32  38 09 42 72 6f 77 73 65  |ose.R1+28.Browse|
00012700  72 20 69 6e 73 74 61 6e  63 65 20 68 61 6e 64 6c  |r instance handl|
00012710  65 00 00 00 44 41 54 41  39 02 00 00 4d 65 73 73  |e...DATA9...Mess|
00012720  61 67 65 5f 50 6c 75 67  49 6e 5f 43 6c 6f 73 65  |age_PlugIn_Close|
00012730  64 20 20 28 26 34 44 35  34 33 29 0a 52 31 2b 31  |d  (&4D543).R1+1|
00012740  32 09 6d 79 5f 72 65 66  20 66 69 65 6c 64 20 66  |2.my_ref field f|
00012750  72 6f 6d 20 4d 65 73 73  61 67 65 5f 50 6c 75 67  |rom Message_Plug|
00012760  49 6e 5f 43 6c 6f 73 65  20 28 69 66 20 61 70 70  |In_Close (if app|
00012770  6c 69 63 61 62 6c 65 29  0a 52 31 2b 31 36 09 4d  |licable).R1+16.M|
00012780  65 73 73 61 67 65 5f 50  6c 75 67 49 6e 5f 43 6c  |essage_PlugIn_Cl|
00012790  6f 73 65 64 20 28 26 34  44 35 34 33 29 0a 0a 43  |osed (&4D543)..C|
000127a0  6f 6d 6d 6f 6e 20 66 69  65 6c 64 73 0a 52 31 2b  |ommon fields.R1+|
000127b0  32 30 09 46 6c 61 67 73  3a 0a 09 20 20 30 3a 09  |20.Flags:..  0:.|
000127c0  53 65 74 3b 20 50 6c 75  67 49 6e 20 77 69 6c 6c  |Set; PlugIn will|
000127d0  20 65 78 69 74 20 61 66  74 65 72 20 74 68 69 73  | exit after this|
000127e0  20 6d 65 73 73 61 67 65  0a 09 20 20 31 3a 09 53  | message..  1:.S|
000127f0  65 74 3b 20 74 68 69 73  20 6d 65 73 73 61 67 65  |et; this message|
00012800  20 69 73 20 2a 6e 6f 74  2a 20 69 6e 20 72 65 70  | is *not* in rep|
00012810  6c 79 20 74 6f 20 4d 65  73 73 61 67 65 5f 50 6c  |ly to Message_Pl|
00012820  75 67 49 6e 5f 43 6c 6f  73 65 0a 09 20 20 32 3a  |ugIn_Close..  2:|
00012830  09 53 65 74 3b 20 74 68  65 72 65 20 69 73 20 61  |.Set; there is a|
00012840  6e 20 65 72 72 6f 72 20  62 6c 6f 63 6b 20 61 74  |n error block at|
00012850  20 52 31 2b 33 32 0a 09  20 20 33 2d 33 31 3a 09  | R1+32..  3-31:.|
00012860  72 65 73 65 72 76 65 64  20 28 6d 75 73 74 20 62  |reserved (must b|
00012870  65 20 7a 65 72 6f 29 0a  52 31 2b 32 34 09 50 6c  |e zero).R1+24.Pl|
00012880  75 67 49 6e 20 69 6e 73  74 61 6e 63 65 20 68 61  |ugIn instance ha|
00012890  6e 64 6c 65 20 6f 66 20  74 68 65 20 63 6c 6f 73  |ndle of the clos|
000128a0  65 64 20 69 6e 73 74 61  6e 63 65 0a 52 31 2b 32  |ed instance.R1+2|
000128b0  38 09 42 72 6f 77 73 65  72 20 69 6e 73 74 61 6e  |8.Browser instan|
000128c0  63 65 20 68 61 6e 64 6c  65 20 6f 66 20 74 68 65  |ce handle of the|
000128d0  20 63 6c 6f 73 65 64 20  69 6e 73 74 61 6e 63 65  | closed instance|
000128e0  0a 0a 49 66 20 66 6c 61  67 73 20 62 69 74 20 32  |..If flags bit 2|
000128f0  20 69 73 20 73 65 74 3a  0a 52 31 2b 33 32 09 45  | is set:.R1+32.E|
00012900  72 72 6f 72 20 6e 75 6d  62 65 72 0a 52 31 2b 33  |rror number.R1+3|
00012910  36 09 45 72 72 6f 72 20  6d 65 73 73 61 67 65 20  |6.Error message |
00012920  74 6f 20 62 65 20 64 69  73 70 6c 61 79 65 64 20  |to be displayed |
00012930  62 79 20 62 72 6f 77 73  65 72 20 28 7a 65 72 6f  |by browser (zero|
00012940  2d 74 65 72 6d 69 6e 61  74 65 64 29 0a 00 00 00  |-terminated)....|
00012950  44 41 54 41 8b 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00012960  50 6c 75 67 49 6e 5f 52  65 73 68 61 70 65 20 20  |PlugIn_Reshape  |
00012970  28 26 34 44 35 34 34 29  0a 52 31 2b 31 32 09 6d  |(&4D544).R1+12.m|
00012980  79 5f 72 65 66 20 66 69  65 6c 64 20 66 72 6f 6d  |y_ref field from|
00012990  20 4d 65 73 73 61 67 65  5f 50 6c 75 67 49 6e 5f  | Message_PlugIn_|
000129a0  52 65 73 68 61 70 65 5f  52 65 71 75 65 73 74 20  |Reshape_Request |
000129b0  28 69 66 20 61 70 70 6c  69 63 61 62 6c 65 29 0a  |(if applicable).|
000129c0  52 31 2b 31 36 09 4d 65  73 73 61 67 65 5f 50 6c  |R1+16.Message_Pl|
000129d0  75 67 49 6e 5f 52 65 73  68 61 70 65 20 28 26 34  |ugIn_Reshape (&4|
000129e0  44 35 34 34 29 0a 52 31  2b 32 30 09 46 6c 61 67  |D544).R1+20.Flag|
000129f0  73 2c 20 72 65 73 65 72  76 65 64 20 28 6d 75 73  |s, reserved (mus|
00012a00  74 20 62 65 20 7a 65 72  6f 29 0a 52 31 2b 32 34  |t be zero).R1+24|
00012a10  09 50 6c 75 67 49 6e 20  69 6e 73 74 61 6e 63 65  |.PlugIn instance|
00012a20  20 68 61 6e 64 6c 65 0a  52 31 2b 32 38 09 42 72  | handle.R1+28.Br|
00012a30  6f 77 73 65 72 20 69 6e  73 74 61 6e 63 65 20 68  |owser instance h|
00012a40  61 6e 64 6c 65 0a 52 31  2b 33 32 09 50 61 72 65  |andle.R1+32.Pare|
00012a50  6e 74 20 77 69 6e 64 6f  77 20 68 61 6e 64 6c 65  |nt window handle|
00012a60  0a 52 31 2b 33 36 09 4c  65 66 74 09 7b 2f 7d 28  |.R1+36.Left.{/}(|
00012a70  62 6f 75 6e 64 69 6e 67  20 62 6f 78 7b 2f 7d 0a  |bounding box{/}.|
00012a80  52 31 2b 34 30 09 42 6f  74 74 6f 6d 09 7b 2f 7d  |R1+40.Bottom.{/}|
00012a90  20 69 6e 20 70 61 72 65  6e 74 27 73 7b 2f 7d 0a  | in parent's{/}.|
00012aa0  52 31 2b 34 34 09 52 69  67 68 74 09 7b 2f 7d 20  |R1+44.Right.{/} |
00012ab0  77 6f 72 6b 20 61 72 65  61 7b 2f 7d 0a 52 31 2b  |work area{/}.R1+|
00012ac0  34 38 09 54 6f 70 09 7b  2f 7d 20 63 6f 2d 6f 72  |48.Top.{/} co-or|
00012ad0  64 69 6e 61 74 65 73 29  7b 2f 7d 00 44 41 54 41  |dinates){/}.DATA|
00012ae0  e5 00 00 00 4d 65 73 73  61 67 65 5f 50 6c 75 67  |....Message_Plug|
00012af0  49 6e 5f 52 65 73 68 61  70 65 5f 52 65 71 75 65  |In_Reshape_Reque|
00012b00  73 74 20 20 28 26 34 44  35 34 35 29 0a 52 31 2b  |st  (&4D545).R1+|
00012b10  31 36 09 4d 65 73 73 61  67 65 5f 50 6c 75 67 49  |16.Message_PlugI|
00012b20  6e 5f 52 65 73 68 61 70  65 5f 52 65 71 75 65 73  |n_Reshape_Reques|
00012b30  74 20 28 26 34 44 35 34  35 29 0a 52 31 2b 32 30  |t (&4D545).R1+20|
00012b40  09 46 6c 61 67 73 2c 20  72 65 73 65 72 76 65 64  |.Flags, reserved|
00012b50  20 28 6d 75 73 74 20 62  65 20 7a 65 72 6f 29 0a  | (must be zero).|
00012b60  52 31 2b 32 34 09 50 6c  75 67 49 6e 20 69 6e 73  |R1+24.PlugIn ins|
00012b70  74 61 6e 63 65 20 68 61  6e 64 6c 65 0a 52 31 2b  |tance handle.R1+|
00012b80  32 38 09 42 72 6f 77 73  65 72 20 69 6e 73 74 61  |28.Browser insta|
00012b90  6e 63 65 20 68 61 6e 64  6c 65 0a 52 31 2b 33 32  |nce handle.R1+32|
00012ba0  09 57 69 64 74 68 09 28  69 6e 20 4f 53 20 75 6e  |.Width.(in OS un|
00012bb0  69 74 73 29 0a 52 31 2b  33 36 09 48 65 69 67 68  |its).R1+36.Heigh|
00012bc0  74 00 00 00 44 41 54 41  f9 01 00 00 4d 65 73 73  |t...DATA....Mess|
00012bd0  61 67 65 5f 50 6c 75 67  49 6e 5f 46 6f 63 75 73  |age_PlugIn_Focus|
00012be0  20 20 28 26 34 44 35 34  36 29 0a 52 31 2b 31 36  |  (&4D546).R1+16|
00012bf0  09 4d 65 73 73 61 67 65  5f 50 6c 75 67 49 6e 5f  |.Message_PlugIn_|
00012c00  46 6f 63 75 73 20 28 26  34 44 35 34 36 29 0a 52  |Focus (&4D546).R|
00012c10  31 2b 32 30 09 46 6c 61  67 73 2c 20 72 65 73 65  |1+20.Flags, rese|
00012c20  72 76 65 64 20 28 6d 75  73 74 20 62 65 20 7a 65  |rved (must be ze|
00012c30  72 6f 29 0a 52 31 2b 32  34 09 50 6c 75 67 49 6e  |ro).R1+24.PlugIn|
00012c40  20 69 6e 73 74 61 6e 63  65 20 68 61 6e 64 6c 65  | instance handle|
00012c50  0a 52 31 2b 32 38 09 42  72 6f 77 73 65 72 20 69  |.R1+28.Browser i|
00012c60  6e 73 74 61 6e 63 65 20  68 61 6e 64 6c 65 0a 0a  |nstance handle..|
00012c70  54 68 69 73 20 6d 65 73  73 61 67 65 20 69 73 20  |This message is |
00012c80  75 73 65 64 20 74 6f 20  74 72 61 6e 73 66 65 72  |used to transfer|
00012c90  20 74 68 65 20 69 6e 70  75 74 20 66 6f 63 75 73  | the input focus|
00012ca0  20 62 65 74 77 65 65 6e  20 61 20 70 6c 75 67 69  | between a plugi|
00012cb0  6e 20 61 6e 64 20 69 74  73 20 70 61 72 65 6e 74  |n and its parent|
00012cc0  2e 20 20 49 74 20 63 61  6e 20 62 65 20 73 65 6e  |.  It can be sen|
00012cd0  74 20 69 6e 20 65 69 74  68 65 72 20 64 69 72 65  |t in either dire|
00012ce0  63 74 69 6f 6e 2e 20 20  49 66 20 74 68 65 20 72  |ction.  If the r|
00012cf0  65 63 69 70 69 65 6e 74  20 63 61 6e 6e 6f 74 20  |ecipient cannot |
00012d00  6f 72 20 64 6f 65 73 20  6e 6f 74 20 77 69 73 68  |or does not wish|
00012d10  20 74 6f 20 61 63 63 65  70 74 20 74 68 65 20 66  | to accept the f|
00012d20  6f 63 75 73 20 74 68 65  6e 20 69 74 20 6a 75 73  |ocus then it jus|
00012d30  74 20 69 67 6e 6f 72 65  73 20 74 68 65 20 6d 65  |t ignores the me|
00012d40  73 73 73 61 67 65 2e 20  20 4f 74 68 65 72 77 69  |sssage.  Otherwi|
00012d50  73 65 20 69 74 20 73 68  6f 75 6c 64 20 61 63 6b  |se it should ack|
00012d60  6e 6f 77 6c 65 64 67 65  20 74 68 65 20 6d 65 73  |nowledge the mes|
00012d70  73 61 67 65 20 77 69 74  68 20 6d 65 73 73 61 67  |sage with messag|
00012d80  65 20 74 79 70 65 20 31  39 20 74 6f 20 70 72 65  |e type 19 to pre|
00012d90  76 65 6e 74 20 69 74 20  62 65 69 6e 67 20 62 6f  |vent it being bo|
00012da0  75 6e 63 65 64 20 62 61  63 6b 20 74 6f 20 74 68  |unced back to th|
00012db0  65 20 6f 72 69 67 69 6e  61 74 6f 72 2e 00 00 00  |e originator....|
00012dc0  44 41 54 41 03 01 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00012dd0  50 6c 75 67 49 6e 5f 55  6e 6c 6f 63 6b 20 20 28  |PlugIn_Unlock  (|
00012de0  26 34 44 35 34 37 29 0a  52 31 2b 31 36 09 4d 65  |&4D547).R1+16.Me|
00012df0  73 73 61 67 65 5f 50 6c  75 67 49 6e 5f 55 6e 6c  |ssage_PlugIn_Unl|
00012e00  6f 63 6b 20 28 26 34 44  35 34 37 29 0a 52 31 2b  |ock (&4D547).R1+|
00012e10  32 30 09 46 6c 61 67 73  2c 20 72 65 73 65 72 76  |20.Flags, reserv|
00012e20  65 64 20 28 6d 75 73 74  20 62 65 20 7a 65 72 6f  |ed (must be zero|
00012e30  29 0a 52 31 2b 32 34 09  50 6c 75 67 49 6e 20 69  |).R1+24.PlugIn i|
00012e40  6e 73 74 61 6e 63 65 20  68 61 6e 64 6c 65 0a 52  |nstance handle.R|
00012e50  31 2b 32 38 09 42 72 6f  77 73 65 72 20 69 6e 73  |1+28.Browser ins|
00012e60  74 61 6e 63 65 20 68 61  6e 64 6c 65 0a 52 31 2b  |tance handle.R1+|
00012e70  33 32 09 55 52 4c 20 66  6f 72 20 77 68 69 63 68  |32.URL for which|
00012e80  20 74 6f 20 75 6e 6c 6f  63 6b 20 74 68 65 20 63  | to unlock the c|
00012e90  61 63 68 65 20 66 69 6c  65 20 28 3c 73 74 72 69  |ache file (<stri|
00012ea0  6e 67 5f 76 61 6c 75 65  3d 3e 6d 73 67 5f 70 6c  |ng_value=>msg_pl|
00012eb0  75 67 69 6e 5f 73 74 72  69 6e 67 5f 76 61 6c 75  |ugin_string_valu|
00012ec0  65 3e 29 00 44 41 54 41  f0 02 00 00 4d 65 73 73  |e>).DATA....Mess|
00012ed0  61 67 65 5f 50 6c 75 67  49 6e 5f 53 74 72 65 61  |age_PlugIn_Strea|
00012ee0  6d 4e 65 77 20 20 28 26  34 44 35 34 38 29 0a 52  |mNew  (&4D548).R|
00012ef0  31 2b 31 36 09 4d 65 73  73 61 67 65 5f 50 6c 75  |1+16.Message_Plu|
00012f00  67 49 6e 5f 53 74 72 65  61 6d 4e 65 77 20 28 26  |gIn_StreamNew (&|
00012f10  34 44 35 34 38 29 0a 0a  43 6f 6d 6d 6f 6e 20 66  |4D548)..Common f|
00012f20  69 65 6c 64 73 3a 0a 52  31 2b 32 30 09 46 6c 61  |ields:.R1+20.Fla|
00012f30  67 20 62 69 74 73 20 3a  0a 09 20 20 30 2d 33 3a  |g bits :..  0-3:|
00012f40  09 73 74 72 65 61 6d 20  74 79 70 65 20 66 69 65  |.stream type fie|
00012f50  6c 64 3a 0a 09 20 09 20  09 30 20 3d 20 6e 6f 72  |ld:.. . .0 = nor|
00012f60  6d 61 6c 0a 09 20 09 20  09 31 20 3d 20 73 65 65  |mal.. . .1 = see|
00012f70  6b 20 6f 6e 6c 79 0a 09  20 09 20 09 32 20 3d 20  |k only.. . .2 = |
00012f80  61 73 20 66 69 6c 65 0a  09 20 09 20 09 33 20 3d  |as file.. . .3 =|
00012f90  20 61 73 20 66 69 6c 65  20 6f 6e 6c 79 0a 09 20  | as file only.. |
00012fa0  20 34 3a 09 09 53 65 74  3b 20 73 74 72 65 61 6d  | 4:..Set; stream|
00012fb0  20 69 73 20 73 65 65 6b  61 62 6c 65 0a 09 20 20  | is seekable..  |
00012fc0  31 3a 09 72 65 73 65 72  76 65 64 20 28 6d 75 73  |1:.reserved (mus|
00012fd0  74 20 62 65 20 7a 65 72  6f 29 0a 52 31 2b 32 34  |t be zero).R1+24|
00012fe0  09 50 6c 75 67 49 6e 20  69 6e 73 74 61 6e 63 65  |.PlugIn instance|
00012ff0  20 68 61 6e 64 6c 65 0a  52 31 2b 32 38 09 42 72  | handle.R1+28.Br|
00013000  6f 77 73 65 72 20 69 6e  73 74 61 6e 63 65 20 68  |owser instance h|
00013010  61 6e 64 6c 65 0a 0a 43  6f 6d 6d 6f 6e 20 73 74  |andle..Common st|
00013020  72 65 61 6d 20 66 69 65  6c 64 73 3a 0a 52 31 2b  |ream fields:.R1+|
00013030  33 32 09 50 6c 75 67 49  6e 20 73 74 72 65 61 6d  |32.PlugIn stream|
00013040  20 69 6e 73 74 61 6e 63  65 20 68 61 6e 64 6c 65  | instance handle|
00013050  0a 52 31 2b 33 36 09 42  72 6f 77 73 65 72 20 73  |.R1+36.Browser s|
00013060  74 72 65 61 6d 20 69 6e  73 74 61 6e 63 65 20 68  |tream instance h|
00013070  61 6e 64 6c 65 0a 52 31  2b 34 30 09 55 52 4c 20  |andle.R1+40.URL |
00013080  6f 66 20 73 74 72 65 61  6d 20 73 6f 75 72 63 65  |of stream source|
00013090  2f 64 65 73 74 20 28 3c  73 74 72 69 6e 67 5f 76  |/dest (<string_v|
000130a0  61 6c 75 65 3d 3e 6d 73  67 5f 70 6c 75 67 69 6e  |alue=>msg_plugin|
000130b0  5f 73 74 72 69 6e 67 5f  76 61 6c 75 65 3e 29 0a  |_string_value>).|
000130c0  52 31 2b 34 34 09 45 6e  64 20 6f 66 20 73 74 72  |R1+44.End of str|
000130d0  65 61 6d 20 69 6e 20 62  79 74 65 73 2c 20 6f 72  |eam in bytes, or|
000130e0  20 30 20 69 66 20 75 6e  6b 6e 6f 77 6e 0a 52 31  | 0 if unknown.R1|
000130f0  2b 34 38 09 4c 61 73 74  20 6d 6f 64 69 66 69 65  |+48.Last modifie|
00013100  64 20 64 61 74 65 20 6f  66 20 55 52 4c 20 28 69  |d date of URL (i|
00013110  6e 20 55 4e 49 58 20 74  69 6d 65 20 66 6f 72 6d  |n UNIX time form|
00013120  61 74 29 0a 52 31 2b 35  32 09 4e 6f 74 69 66 79  |at).R1+52.Notify|
00013130  20 64 61 74 61 0a 52 31  2b 35 36 09 4d 49 4d 45  | data.R1+56.MIME|
00013140  20 74 79 70 65 20 6f 66  20 55 52 4c 20 28 3c 73  | type of URL (<s|
00013150  74 72 69 6e 67 5f 76 61  6c 75 65 3d 3e 6d 73 67  |tring_value=>msg|
00013160  5f 70 6c 75 67 69 6e 5f  73 74 72 69 6e 67 5f 76  |_plugin_string_v|
00013170  61 6c 75 65 3e 29 0a 52  31 2b 36 30 09 57 69 6e  |alue>).R1+60.Win|
00013180  64 6f 77 20 74 61 72 67  65 74 20 28 3c 73 74 72  |dow target (<str|
00013190  69 6e 67 5f 76 61 6c 75  65 3d 3e 6d 73 67 5f 70  |ing_value=>msg_p|
000131a0  6c 75 67 69 6e 5f 73 74  72 69 6e 67 5f 76 61 6c  |lugin_string_val|
000131b0  75 65 3e 29 44 41 54 41  6b 02 00 00 4d 65 73 73  |ue>)DATAk...Mess|
000131c0  61 67 65 5f 50 6c 75 67  49 6e 5f 53 74 72 65 61  |age_PlugIn_Strea|
000131d0  6d 44 65 73 74 72 6f 79  20 20 28 26 34 44 35 34  |mDestroy  (&4D54|
000131e0  39 29 0a 52 31 2b 31 36  09 4d 65 73 73 61 67 65  |9).R1+16.Message|
000131f0  5f 50 6c 75 67 49 6e 5f  53 74 72 65 61 6d 44 65  |_PlugIn_StreamDe|
00013200  73 74 72 6f 79 20 28 26  34 44 35 34 39 29 0a 0a  |stroy (&4D549)..|
00013210  43 6f 6d 6d 6f 6e 20 66  69 65 6c 64 73 3a 0a 52  |Common fields:.R|
00013220  31 2b 32 30 09 46 6c 61  67 73 2c 20 72 65 73 65  |1+20.Flags, rese|
00013230  72 76 65 64 20 28 6d 75  73 74 20 62 65 20 7a 65  |rved (must be ze|
00013240  72 6f 29 0a 52 31 2b 32  34 09 50 6c 75 67 49 6e  |ro).R1+24.PlugIn|
00013250  20 69 6e 73 74 61 6e 63  65 20 68 61 6e 64 6c 65  | instance handle|
00013260  0a 52 31 2b 32 38 09 42  72 6f 77 73 65 72 20 69  |.R1+28.Browser i|
00013270  6e 73 74 61 6e 63 65 20  68 61 6e 64 6c 65 0a 0a  |nstance handle..|
00013280  43 6f 6d 6d 6f 6e 20 73  74 72 65 61 6d 20 66 69  |Common stream fi|
00013290  65 6c 64 73 3a 0a 52 31  2b 33 32 09 50 6c 75 67  |elds:.R1+32.Plug|
000132a0  49 6e 20 73 74 72 65 61  6d 20 69 6e 73 74 61 6e  |In stream instan|
000132b0  63 65 20 68 61 6e 64 6c  65 0a 52 31 2b 33 36 09  |ce handle.R1+36.|
000132c0  42 72 6f 77 73 65 72 20  73 74 72 65 61 6d 20 69  |Browser stream i|
000132d0  6e 73 74 61 6e 63 65 20  68 61 6e 64 6c 65 0a 52  |nstance handle.R|
000132e0  31 2b 34 30 09 55 52 4c  20 6f 66 20 73 74 72 65  |1+40.URL of stre|
000132f0  61 6d 20 73 6f 75 72 63  65 2f 64 65 73 74 20 28  |am source/dest (|
00013300  3c 73 74 72 69 6e 67 5f  76 61 6c 75 65 3d 3e 6d  |<string_value=>m|
00013310  73 67 5f 70 6c 75 67 69  6e 5f 73 74 72 69 6e 67  |sg_plugin_string|
00013320  5f 76 61 6c 75 65 3e 29  0a 52 31 2b 34 34 09 45  |_value>).R1+44.E|
00013330  6e 64 20 6f 66 20 73 74  72 65 61 6d 20 69 6e 20  |nd of stream in |
00013340  62 79 74 65 73 2c 20 6f  72 20 30 20 69 66 20 75  |bytes, or 0 if u|
00013350  6e 6b 6e 6f 77 6e 0a 52  31 2b 34 38 09 4c 61 73  |nknown.R1+48.Las|
00013360  74 20 6d 6f 64 69 66 69  65 64 20 64 61 74 65 20  |t modified date |
00013370  6f 66 20 55 52 4c 20 28  69 6e 20 55 4e 49 58 20  |of URL (in UNIX |
00013380  74 69 6d 65 20 66 6f 72  6d 61 74 29 0a 52 31 2b  |time format).R1+|
00013390  35 32 09 4e 6f 74 69 66  79 20 64 61 74 61 0a 52  |52.Notify data.R|
000133a0  31 2b 35 36 09 52 65 61  73 6f 6e 3a 0a 09 30 3a  |1+56.Reason:..0:|
000133b0  09 53 74 72 65 61 6d 20  66 69 6e 69 73 68 65 64  |.Stream finished|
000133c0  20 73 75 63 63 65 73 73  66 75 6c 6c 79 0a 09 31  | successfully..1|
000133d0  3a 09 53 74 72 65 61 6d  20 66 69 6e 69 73 68 65  |:.Stream finishe|
000133e0  64 20 64 75 65 20 74 6f  20 61 6e 20 65 72 72 6f  |d due to an erro|
000133f0  72 0a 09 32 3a 09 53 74  72 65 61 6d 20 66 69 6e  |r..2:.Stream fin|
00013400  69 73 68 65 64 20 64 75  65 20 74 6f 20 75 73 65  |ished due to use|
00013410  72 20 69 6e 74 65 72 76  65 6e 74 69 6f 6e 0a 00  |r intervention..|
00013420  44 41 54 41 ae 02 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00013430  50 6c 75 67 49 6e 5f 53  74 72 65 61 6d 57 72 69  |PlugIn_StreamWri|
00013440  74 65 20 20 28 26 34 44  35 34 41 29 0a 52 31 2b  |te  (&4D54A).R1+|
00013450  31 36 09 4d 65 73 73 61  67 65 5f 50 6c 75 67 49  |16.Message_PlugI|
00013460  6e 5f 53 74 72 65 61 6d  57 72 69 74 65 20 28 26  |n_StreamWrite (&|
00013470  34 44 35 34 41 29 0a 0a  43 6f 6d 6d 6f 6e 20 66  |4D54A)..Common f|
00013480  69 65 6c 64 73 3a 0a 52  31 2b 32 30 09 46 6c 61  |ields:.R1+20.Fla|
00013490  67 20 62 69 74 73 3a 0a  09 20 20 30 2d 33 3a 09  |g bits:..  0-3:.|
000134a0  44 61 74 61 20 74 79 70  65 20 66 69 65 6c 64 0a  |Data type field.|
000134b0  09 20 09 20 20 30 3a 20  3c 73 74 72 69 6e 67 5f  |. .  0: <string_|
000134c0  76 61 6c 75 65 3d 3e 6d  73 67 5f 70 6c 75 67 69  |value=>msg_plugi|
000134d0  6e 5f 73 74 72 69 6e 67  5f 76 61 6c 75 65 3e 0a  |n_string_value>.|
000134e0  09 20 09 20 20 31 3a 20  61 6e 63 68 6f 72 0a 09  |. .  1: anchor..|
000134f0  20 09 20 20 32 3a 20 66  69 6c 65 20 68 61 6e 64  | .  2: file hand|
00013500  6c 65 0a 09 20 20 34 2d  33 31 3a 09 72 65 73 65  |le..  4-31:.rese|
00013510  72 76 65 64 20 28 6d 75  73 74 20 62 65 20 7a 65  |rved (must be ze|
00013520  72 6f 29 0a 52 31 2b 32  34 09 50 6c 75 67 49 6e  |ro).R1+24.PlugIn|
00013530  20 69 6e 73 74 61 6e 63  65 20 68 61 6e 64 6c 65  | instance handle|
00013540  0a 52 31 2b 32 38 09 42  72 6f 77 73 65 72 20 69  |.R1+28.Browser i|
00013550  6e 73 74 61 6e 63 65 20  68 61 6e 64 6c 65 0a 0a  |nstance handle..|
00013560  43 6f 6d 6d 6f 6e 20 73  74 72 65 61 6d 20 66 69  |Common stream fi|
00013570  65 6c 64 73 3a 0a 52 31  2b 33 32 09 50 6c 75 67  |elds:.R1+32.Plug|
00013580  49 6e 20 73 74 72 65 61  6d 20 69 6e 73 74 61 6e  |In stream instan|
00013590  63 65 20 68 61 6e 64 6c  65 0a 52 31 2b 33 36 09  |ce handle.R1+36.|
000135a0  42 72 6f 77 73 65 72 20  73 74 72 65 61 6d 20 69  |Browser stream i|
000135b0  6e 73 74 61 6e 63 65 20  68 61 6e 64 6c 65 0a 52  |nstance handle.R|
000135c0  31 2b 34 30 09 55 52 4c  20 6f 66 20 73 74 72 65  |1+40.URL of stre|
000135d0  61 6d 20 73 6f 75 72 63  65 2f 64 65 73 74 20 28  |am source/dest (|
000135e0  3c 73 74 72 69 6e 67 5f  76 61 6c 75 65 3d 3e 6d  |<string_value=>m|
000135f0  73 67 5f 70 6c 75 67 69  6e 5f 73 74 72 69 6e 67  |sg_plugin_string|
00013600  5f 76 61 6c 75 65 3e 29  0a 52 31 2b 34 34 09 45  |_value>).R1+44.E|
00013610  6e 64 20 6f 66 20 73 74  72 65 61 6d 20 69 6e 20  |nd of stream in |
00013620  62 79 74 65 73 2c 20 6f  72 20 30 20 69 66 20 75  |bytes, or 0 if u|
00013630  6e 6b 6e 6f 77 6e 0a 52  31 2b 34 38 09 4c 61 73  |nknown.R1+48.Las|
00013640  74 20 6d 6f 64 69 66 69  65 64 20 64 61 74 65 20  |t modified date |
00013650  6f 66 20 55 52 4c 20 28  69 6e 20 55 4e 49 58 20  |of URL (in UNIX |
00013660  74 69 6d 65 20 66 6f 72  6d 61 74 29 0a 52 31 2b  |time format).R1+|
00013670  35 32 09 4e 6f 74 69 66  79 20 64 61 74 61 0a 52  |52.Notify data.R|
00013680  31 2b 35 36 09 4c 6f 67  69 63 61 6c 20 6f 66 66  |1+56.Logical off|
00013690  73 65 74 20 69 6e 20 73  74 72 65 61 6d 20 6f 66  |set in stream of|
000136a0  20 64 61 74 61 0a 52 31  2b 36 30 09 4c 65 6e 67  | data.R1+60.Leng|
000136b0  74 68 20 6f 66 20 64 61  74 61 0a 52 31 2b 36 34  |th of data.R1+64|
000136c0  09 44 61 74 61 20 70 6f  69 6e 74 65 72 0a 00 00  |.Data pointer...|
000136d0  44 41 54 41 48 02 00 00  4d 65 73 73 61 67 65 5f  |DATAH...Message_|
000136e0  50 6c 75 67 49 6e 5f 53  74 72 65 61 6d 57 72 69  |PlugIn_StreamWri|
000136f0  74 74 65 6e 20 20 28 26  34 44 35 34 42 29 0a 52  |tten  (&4D54B).R|
00013700  31 2b 31 32 09 6d 79 5f  72 65 66 20 66 69 65 64  |1+12.my_ref fied|
00013710  20 66 72 6f 6d 20 4d 65  73 73 61 67 65 5f 50 6c  | from Message_Pl|
00013720  75 67 49 6e 5f 53 74 72  65 61 6d 57 72 69 74 65  |ugIn_StreamWrite|
00013730  0a 52 31 2b 31 36 09 4d  65 73 73 61 67 65 5f 50  |.R1+16.Message_P|
00013740  6c 75 67 49 6e 5f 53 74  72 65 61 6d 57 72 69 74  |lugIn_StreamWrit|
00013750  74 65 6e 20 28 26 34 44  35 34 42 29 0a 0a 43 6f  |ten (&4D54B)..Co|
00013760  6d 6d 6f 6e 20 66 69 65  6c 64 73 3a 0a 52 31 2b  |mmon fields:.R1+|
00013770  32 30 09 46 6c 61 67 73  2c 20 72 65 73 65 72 76  |20.Flags, reserv|
00013780  65 64 20 28 6d 75 73 74  20 62 65 20 7a 65 72 6f  |ed (must be zero|
00013790  29 0a 52 31 2b 32 34 09  50 6c 75 67 49 6e 20 69  |).R1+24.PlugIn i|
000137a0  6e 73 74 61 6e 63 65 20  68 61 6e 64 6c 65 0a 52  |nstance handle.R|
000137b0  31 2b 32 38 09 42 72 6f  77 73 65 72 20 69 6e 73  |1+28.Browser ins|
000137c0  74 61 6e 63 65 20 68 61  6e 64 6c 65 0a 0a 43 6f  |tance handle..Co|
000137d0  6d 6d 6f 6e 20 73 74 72  65 61 6d 20 66 69 65 6c  |mmon stream fiel|
000137e0  64 73 3a 0a 52 31 2b 33  32 09 50 6c 75 67 49 6e  |ds:.R1+32.PlugIn|
000137f0  20 73 74 72 65 61 6d 20  69 6e 73 74 61 6e 63 65  | stream instance|
00013800  20 68 61 6e 64 6c 65 0a  52 31 2b 33 36 09 42 72  | handle.R1+36.Br|
00013810  6f 77 73 65 72 20 73 74  72 65 61 6d 20 69 6e 73  |owser stream ins|
00013820  74 61 6e 63 65 20 68 61  6e 64 6c 65 0a 52 31 2b  |tance handle.R1+|
00013830  34 30 09 55 52 4c 20 6f  66 20 73 74 72 65 61 6d  |40.URL of stream|
00013840  20 73 6f 75 72 63 65 2f  64 65 73 74 20 28 3c 73  | source/dest (<s|
00013850  74 72 69 6e 67 5f 76 61  6c 75 65 3d 3e 6d 73 67  |tring_value=>msg|
00013860  5f 70 6c 75 67 69 6e 5f  73 74 72 69 6e 67 5f 76  |_plugin_string_v|
00013870  61 6c 75 65 3e 29 0a 52  31 2b 34 34 09 45 6e 64  |alue>).R1+44.End|
00013880  20 6f 66 20 73 74 72 65  61 6d 20 69 6e 20 62 79  | of stream in by|
00013890  74 65 73 2c 20 6f 72 20  30 20 69 66 20 75 6e 6b  |tes, or 0 if unk|
000138a0  6e 6f 77 6e 0a 52 31 2b  34 38 09 4c 61 73 74 20  |nown.R1+48.Last |
000138b0  6d 6f 64 69 66 69 65 64  20 64 61 74 65 20 6f 66  |modified date of|
000138c0  20 55 52 4c 20 28 69 6e  20 55 4e 49 58 20 74 69  | URL (in UNIX ti|
000138d0  6d 65 20 66 6f 72 6d 61  74 29 0a 52 31 2b 35 32  |me format).R1+52|
000138e0  09 4e 6f 74 69 66 79 20  64 61 74 61 0a 52 31 2b  |.Notify data.R1+|
000138f0  35 36 09 4c 65 6e 67 74  68 20 6f 66 20 64 61 74  |56.Length of dat|
00013900  61 20 63 6f 6e 73 75 6d  65 64 2c 20 5c 3c 30 20  |a consumed, \<0 |
00013910  69 66 20 65 72 72 6f 72  44 41 54 41 31 02 00 00  |if errorDATA1...|
00013920  4d 65 73 73 61 67 65 5f  50 6c 75 67 49 6e 5f 53  |Message_PlugIn_S|
00013930  74 72 65 61 6d 41 73 46  69 6c 65 20 20 28 26 34  |treamAsFile  (&4|
00013940  44 35 34 43 29 0a 52 31  2b 31 36 09 4d 65 73 73  |D54C).R1+16.Mess|
00013950  61 67 65 5f 50 6c 75 67  49 6e 5f 53 74 72 65 61  |age_PlugIn_Strea|
00013960  6d 41 73 46 69 6c 65 20  28 26 34 44 35 34 43 29  |mAsFile (&4D54C)|
00013970  0a 0a 43 6f 6d 6d 6f 6e  20 66 69 65 6c 64 73 3a  |..Common fields:|
00013980  0a 52 31 2b 32 30 09 46  6c 61 67 73 2c 20 72 65  |.R1+20.Flags, re|
00013990  73 65 72 76 65 64 20 28  6d 75 73 74 20 62 65 20  |served (must be |
000139a0  7a 65 72 6f 29 0a 52 31  2b 32 34 09 50 6c 75 67  |zero).R1+24.Plug|
000139b0  49 6e 20 69 6e 73 74 61  6e 63 65 20 68 61 6e 64  |In instance hand|
000139c0  6c 65 0a 52 31 2b 32 38  09 42 72 6f 77 73 65 72  |le.R1+28.Browser|
000139d0  20 69 6e 73 74 61 6e 63  65 20 68 61 6e 64 6c 65  | instance handle|
000139e0  0a 0a 43 6f 6d 6d 6f 6e  20 73 74 72 65 61 6d 20  |..Common stream |
000139f0  66 69 65 6c 64 73 3a 0a  52 31 2b 33 32 09 50 6c  |fields:.R1+32.Pl|
00013a00  75 67 49 6e 20 73 74 72  65 61 6d 20 69 6e 73 74  |ugIn stream inst|
00013a10  61 6e 63 65 20 68 61 6e  64 6c 65 0a 52 31 2b 33  |ance handle.R1+3|
00013a20  36 09 42 72 6f 77 73 65  72 20 73 74 72 65 61 6d  |6.Browser stream|
00013a30  20 69 6e 73 74 61 6e 63  65 20 68 61 6e 64 6c 65  | instance handle|
00013a40  0a 52 31 2b 34 30 09 55  52 4c 20 6f 66 20 73 74  |.R1+40.URL of st|
00013a50  72 65 61 6d 20 73 6f 75  72 63 65 2f 64 65 73 74  |ream source/dest|
00013a60  20 28 3c 73 74 72 69 6e  67 5f 76 61 6c 75 65 3d  | (<string_value=|
00013a70  3e 6d 73 67 5f 70 6c 75  67 69 6e 5f 73 74 72 69  |>msg_plugin_stri|
00013a80  6e 67 5f 76 61 6c 75 65  3e 29 0a 52 31 2b 34 34  |ng_value>).R1+44|
00013a90  09 45 6e 64 20 6f 66 20  73 74 72 65 61 6d 20 69  |.End of stream i|
00013aa0  6e 20 62 79 74 65 73 2c  20 6f 72 20 30 20 69 66  |n bytes, or 0 if|
00013ab0  20 75 6e 6b 6e 6f 77 6e  0a 52 31 2b 34 38 09 4c  | unknown.R1+48.L|
00013ac0  61 73 74 20 6d 6f 64 69  66 69 65 64 20 64 61 74  |ast modified dat|
00013ad0  65 20 6f 66 20 55 52 4c  20 28 69 6e 20 55 4e 49  |e of URL (in UNI|
00013ae0  58 20 74 69 6d 65 20 66  6f 72 6d 61 74 29 0a 52  |X time format).R|
00013af0  31 2b 35 32 09 4e 6f 74  69 66 79 20 64 61 74 61  |1+52.Notify data|
00013b00  0a 52 31 2b 35 36 09 46  69 6c 65 20 6e 61 6d 65  |.R1+56.File name|
00013b10  20 6f 66 20 73 74 72 65  61 6d 20 64 61 74 61 20  | of stream data |
00013b20  28 3c 73 74 72 69 6e 67  5f 76 61 6c 75 65 3d 3e  |(<string_value=>|
00013b30  6d 73 67 5f 70 6c 75 67  69 6e 5f 73 74 72 69 6e  |msg_plugin_strin|
00013b40  67 5f 76 61 6c 75 65 3e  29 00 00 00 44 41 54 41  |g_value>)...DATA|
00013b50  6e 03 00 00 4d 65 73 73  61 67 65 5f 50 6c 75 67  |n...Message_Plug|
00013b60  49 6e 5f 55 52 4c 41 63  63 65 73 73 20 20 28 26  |In_URLAccess  (&|
00013b70  34 44 35 34 44 29 0a 52  31 2b 31 36 09 4d 65 73  |4D54D).R1+16.Mes|
00013b80  73 61 67 65 5f 50 6c 75  67 49 6e 5f 55 52 4c 41  |sage_PlugIn_URLA|
00013b90  63 63 65 73 73 20 28 26  34 44 35 34 44 29 0a 0a  |ccess (&4D54D)..|
00013ba0  43 6f 6d 6d 6f 6e 20 66  69 65 6c 64 73 3a 0a 52  |Common fields:.R|
00013bb0  31 2b 32 30 09 46 6c 61  67 20 62 69 74 73 3a 0a  |1+20.Flag bits:.|
00013bc0  09 20 20 30 3a 09 53 65  74 3b 20 72 65 74 75 72  |.  0:.Set; retur|
00013bd0  6e 20 61 20 6e 6f 74 69  66 79 20 6d 65 73 73 61  |n a notify messa|
00013be0  67 65 20 6f 6e 20 63 6f  6d 70 6c 65 74 69 6f 6e  |ge on completion|
00013bf0  0a 09 20 20 31 3a 09 53  65 74 3b 20 50 4f 53 54  |..  1:.Set; POST|
00013c00  20 74 6f 20 74 68 65 20  55 52 4c 0a 09 20 09 43  | to the URL.. .C|
00013c10  6c 65 61 72 3b 20 47 45  54 20 66 72 6f 6d 20 74  |lear; GET from t|
00013c20  68 65 20 55 52 4c 0a 09  49 66 20 62 69 74 20 31  |he URL..If bit 1|
00013c30  20 69 73 20 73 65 74 20  3a 0a 09 20 20 32 3a 09  | is set :..  2:.|
00013c40  53 65 74 3b 20 50 4f 53  54 20 61 20 66 69 6c 65  |Set; POST a file|
00013c50  0a 09 20 09 43 6c 65 61  72 3b 20 50 4f 53 54 20  |.. .Clear; POST |
00013c60  61 20 62 6c 6f 63 6b 20  6f 66 20 6d 65 6d 6f 72  |a block of memor|
00013c70  79 0a 09 42 69 74 73 20  33 2d 33 31 3a 09 72 65  |y..Bits 3-31:.re|
00013c80  73 65 72 76 65 64 20 28  6d 75 73 74 20 62 65 20  |served (must be |
00013c90  7a 65 72 6f 29 0a 52 31  2b 32 34 09 50 6c 75 67  |zero).R1+24.Plug|
00013ca0  49 6e 20 69 6e 73 74 61  6e 63 65 20 68 61 6e 64  |In instance hand|
00013cb0  6c 65 0a 52 31 2b 32 38  09 42 72 6f 77 73 65 72  |le.R1+28.Browser|
00013cc0  20 69 6e 73 74 61 6e 63  65 20 68 61 6e 64 6c 65  | instance handle|
00013cd0  0a 52 31 2b 33 32 09 55  52 4c 20 74 6f 20 61 63  |.R1+32.URL to ac|
00013ce0  63 65 73 73 20 28 3c 73  74 72 69 6e 67 5f 76 61  |cess (<string_va|
00013cf0  6c 75 65 3d 3e 6d 73 67  5f 70 6c 75 67 69 6e 5f  |lue=>msg_plugin_|
00013d00  73 74 72 69 6e 67 5f 76  61 6c 75 65 3e 29 0a 52  |string_value>).R|
00013d10  31 2b 33 36 09 57 69 6e  64 6f 77 20 74 61 72 67  |1+36.Window targ|
00013d20  65 74 20 28 3c 73 74 72  69 6e 67 5f 76 61 6c 75  |et (<string_valu|
00013d30  65 3d 3e 6d 73 67 5f 70  6c 75 67 69 6e 5f 73 74  |e=>msg_plugin_st|
00013d40  72 69 6e 67 5f 76 61 6c  75 65 3e 29 0a 52 31 2b  |ring_value>).R1+|
00013d50  34 30 09 4e 6f 74 69 66  79 20 64 61 74 61 20 74  |40.Notify data t|
00013d60  6f 20 62 65 20 72 65 74  75 72 6e 65 64 0a 52 31  |o be returned.R1|
00013d70  2b 34 34 09 4c 65 6e 67  74 68 20 6f 66 20 64 61  |+44.Length of da|
00013d80  74 61 20 74 6f 20 62 65  20 50 4f 53 54 65 64 0a  |ta to be POSTed.|
00013d90  52 31 2b 34 38 09 49 66  20 62 69 74 20 32 20 69  |R1+48.If bit 2 i|
00013da0  73 20 73 65 74 3b 20 66  69 6c 65 6e 61 6d 65 20  |s set; filename |
00013db0  28 3c 73 74 72 69 6e 67  5f 76 61 6c 75 65 3d 3e  |(<string_value=>|
00013dc0  6d 73 67 5f 70 6c 75 67  69 6e 5f 73 74 72 69 6e  |msg_plugin_strin|
00013dd0  67 5f 76 61 6c 75 65 3e  29 0a 09 49 66 20 62 69  |g_value>)..If bi|
00013de0  74 20 32 20 69 73 20 63  6c 65 61 72 3b 20 70 6f  |t 2 is clear; po|
00013df0  69 6e 74 65 72 20 74 6f  20 64 61 74 61 20 28 3c  |inter to data (<|
00013e00  73 74 72 69 6e 67 5f 76  61 6c 75 65 3d 3e 6d 73  |string_value=>ms|
00013e10  67 5f 70 6c 75 67 69 6e  5f 73 74 72 69 6e 67 5f  |g_plugin_string_|
00013e20  76 61 6c 75 65 3e 29 0a  0a 49 66 20 74 68 65 20  |value>)..If the |
00013e30  77 69 6e 64 6f 77 20 74  61 72 67 65 74 20 69 73  |window target is|
00013e40  20 6e 6f 6e 2d 6e 75 6c  6c 20 74 68 65 6e 20 74  | non-null then t|
00013e50  68 65 20 55 52 4c 20 69  73 20 66 65 74 63 68 65  |he URL is fetche|
00013e60  64 20 74 6f 20 74 68 65  20 67 69 76 65 6e 20 77  |d to the given w|
00013e70  69 6e 64 6f 77 20 6e 61  6d 65 2e 20 20 4f 74 68  |indow name.  Oth|
00013e80  65 72 77 69 73 65 20 61  20 73 74 72 65 61 6d 20  |erwise a stream |
00013e90  69 73 20 6f 70 65 6e 65  64 20 61 6e 64 20 64 61  |is opened and da|
00013ea0  74 61 20 69 73 20 73 65  6e 74 20 74 6f 20 74 68  |ta is sent to th|
00013eb0  65 20 70 6c 75 67 69 6e  2e 0a 00 00 44 41 54 41  |e plugin....DATA|
00013ec0  9d 01 00 00 4d 65 73 73  61 67 65 5f 50 6c 75 67  |....Message_Plug|
00013ed0  49 6e 5f 4e 6f 74 69 66  79 20 20 28 26 34 44 35  |In_Notify  (&4D5|
00013ee0  34 45 29 0a 52 31 2b 31  36 09 4d 65 73 73 61 67  |4E).R1+16.Messag|
00013ef0  65 5f 50 6c 75 67 49 6e  5f 4e 6f 74 69 66 79 20  |e_PlugIn_Notify |
00013f00  28 26 34 44 35 34 45 29  0a 0a 43 6f 6d 6d 6f 6e  |(&4D54E)..Common|
00013f10  20 66 69 65 6c 64 73 3a  0a 52 31 2b 32 30 09 46  | fields:.R1+20.F|
00013f20  6c 61 67 73 2c 20 72 65  73 65 72 76 65 64 20 28  |lags, reserved (|
00013f30  6d 75 73 74 20 62 65 20  7a 65 72 6f 29 0a 52 31  |must be zero).R1|
00013f40  2b 32 34 09 50 6c 75 67  49 6e 20 69 6e 73 74 61  |+24.PlugIn insta|
00013f50  6e 63 65 20 68 61 6e 64  6c 65 0a 52 31 2b 32 38  |nce handle.R1+28|
00013f60  09 42 72 6f 77 73 65 72  20 69 6e 73 74 61 6e 63  |.Browser instanc|
00013f70  65 20 68 61 6e 64 6c 65  0a 52 31 2b 33 32 09 55  |e handle.R1+32.U|
00013f80  52 4c 20 61 63 63 65 73  73 65 64 20 28 3c 73 74  |RL accessed (<st|
00013f90  72 69 6e 67 5f 76 61 6c  75 65 3d 3e 6d 73 67 5f  |ring_value=>msg_|
00013fa0  70 6c 75 67 69 6e 5f 73  74 72 69 6e 67 5f 76 61  |plugin_string_va|
00013fb0  6c 75 65 3e 29 0a 52 31  2b 33 36 09 52 65 61 73  |lue>).R1+36.Reas|
00013fc0  6f 6e 20 66 6f 72 20 6e  6f 74 69 66 79 3a 0a 09  |on for notify:..|
00013fd0  20 20 30 3a 09 53 74 72  65 61 6d 20 66 69 6e 69  |  0:.Stream fini|
00013fe0  73 68 65 64 20 73 75 63  63 65 73 73 66 75 6c 6c  |shed successfull|
00013ff0  79 0a 09 20 20 31 3a 09  53 74 72 65 61 6d 20 66  |y..  1:.Stream f|
00014000  69 6e 69 73 68 65 64 20  64 75 65 20 74 6f 20 61  |inished due to a|
00014010  6e 20 65 72 72 6f 72 0a  09 20 20 32 3a 09 53 74  |n error..  2:.St|
00014020  72 65 61 6d 20 66 69 6e  69 73 68 65 64 20 64 75  |ream finished du|
00014030  65 20 74 6f 20 75 73 65  72 20 69 6e 74 65 72 76  |e to user interv|
00014040  65 6e 74 69 6f 6e 0a 52  31 2b 34 30 09 4e 6f 74  |ention.R1+40.Not|
00014050  69 66 79 20 64 61 74 61  0a 00 00 00 44 41 54 41  |ify data....DATA|
00014060  74 01 00 00 4d 65 73 73  61 67 65 5f 50 6c 75 67  |t...Message_Plug|
00014070  49 6e 5f 53 74 61 74 75  73 20 20 28 26 34 44 35  |In_Status  (&4D5|
00014080  34 46 29 0a 52 31 2b 31  36 09 4d 65 73 73 61 67  |4F).R1+16.Messag|
00014090  65 5f 50 6c 75 67 49 6e  5f 53 74 61 74 75 73 20  |e_PlugIn_Status |
000140a0  28 26 34 44 35 34 46 29  0a 0a 43 6f 6d 6d 6f 6e  |(&4D54F)..Common|
000140b0  20 66 69 65 6c 64 73 3a  0a 52 31 2b 32 30 09 46  | fields:.R1+20.F|
000140c0  6c 61 67 73 2c 20 72 65  73 65 72 76 65 64 20 28  |lags, reserved (|
000140d0  6d 75 73 74 20 62 65 20  7a 65 72 6f 29 0a 52 31  |must be zero).R1|
000140e0  2b 32 34 09 50 6c 75 67  49 6e 20 69 6e 73 74 61  |+24.PlugIn insta|
000140f0  6e 63 65 20 68 61 6e 64  6c 65 0a 52 31 2b 32 38  |nce handle.R1+28|
00014100  09 42 72 6f 77 73 65 72  20 69 6e 73 74 61 6e 63  |.Browser instanc|
00014110  65 20 68 61 6e 64 6c 65  0a 52 31 2b 33 32 09 53  |e handle.R1+32.S|
00014120  74 61 74 75 73 20 6d 65  73 73 61 67 65 20 28 3c  |tatus message (<|
00014130  73 74 72 69 6e 67 5f 76  61 6c 75 65 3d 3e 6d 73  |string_value=>ms|
00014140  67 5f 70 6c 75 67 69 6e  5f 73 74 72 69 6e 67 5f  |g_plugin_string_|
00014150  76 61 6c 75 65 3e 29 0a  0a 52 65 71 75 69 72 65  |value>)..Require|
00014160  73 20 74 68 61 74 20 74  68 65 20 70 61 72 65 6e  |s that the paren|
00014170  74 20 64 69 73 70 6c 61  79 20 73 6f 6d 65 20 69  |t display some i|
00014180  6e 66 6f 72 6d 61 74 69  6f 6e 20 69 6e 20 69 74  |nformation in it|
00014190  73 20 73 74 61 74 75 73  20 62 61 72 20 6f 72 20  |s status bar or |
000141a0  73 69 6d 69 6c 61 72 2e  20 20 54 68 65 20 6d 65  |similar.  The me|
000141b0  73 73 61 67 65 20 73 68  6f 75 6c 64 20 62 65 20  |ssage should be |
000141c0  72 65 73 6f 6e 61 62 6c  79 20 73 68 6f 72 74 2e  |resonably short.|
000141d0  44 41 54 41 20 03 00 00  4d 65 73 73 61 67 65 5f  |DATA ...Message_|
000141e0  50 6c 75 67 49 6e 5f 42  75 73 79 20 20 28 26 34  |PlugIn_Busy  (&4|
000141f0  44 35 35 30 29 0a 52 31  2b 31 36 09 4d 65 73 73  |D550).R1+16.Mess|
00014200  61 67 65 5f 50 6c 75 67  49 6e 5f 42 75 73 79 20  |age_PlugIn_Busy |
00014210  28 26 34 44 35 35 30 29  0a 0a 43 6f 6d 6d 6f 6e  |(&4D550)..Common|
00014220  20 66 69 65 6c 64 73 3a  0a 52 31 2b 32 30 09 46  | fields:.R1+20.F|
00014230  6c 61 67 20 62 69 74 73  3a 0a 09 20 20 30 3a 09  |lag bits:..  0:.|
00014240  53 65 74 3b 20 50 6c 75  67 49 6e 20 69 73 20 62  |Set; PlugIn is b|
00014250  75 73 79 0a 09 20 09 43  6c 65 61 72 3b 20 50 6c  |usy.. .Clear; Pl|
00014260  75 67 49 6e 20 69 73 20  6e 6f 74 20 62 75 73 79  |ugIn is not busy|
00014270  0a 09 20 20 31 3a 09 53  65 74 3b 20 73 74 61 74  |..  1:.Set; stat|
00014280  65 20 61 74 20 52 31 2b  33 32 20 68 61 73 20 73  |e at R1+32 has s|
00014290  6f 6d 65 20 6d 65 61 6e  69 6e 67 0a 09 20 09 43  |ome meaning.. .C|
000142a0  6c 65 61 72 3b 20 69 67  6e 6f 72 65 20 77 6f 72  |lear; ignore wor|
000142b0  64 20 61 74 20 52 31 2b  33 32 0a 09 20 20 32 2d  |d at R1+32..  2-|
000142c0  33 31 3a 09 72 65 73 65  72 76 65 64 20 28 6d 75  |31:.reserved (mu|
000142d0  73 74 20 62 65 20 7a 65  72 6f 29 0a 52 31 2b 32  |st be zero).R1+2|
000142e0  34 09 50 6c 75 67 49 6e  20 69 6e 73 74 61 6e 63  |4.PlugIn instanc|
000142f0  65 20 68 61 6e 64 6c 65  0a 52 31 2b 32 38 09 42  |e handle.R1+28.B|
00014300  72 6f 77 73 65 72 20 69  6e 73 74 61 6e 63 65 20  |rowser instance |
00014310  68 61 6e 64 6c 65 0a 52  31 2b 33 32 09 53 74 61  |handle.R1+32.Sta|
00014320  74 65 3a 0a 09 20 20 30  3a 20 53 74 6f 70 0a 09  |te:..  0: Stop..|
00014330  20 20 31 3a 20 50 6c 61  79 0a 09 20 20 32 3a 20  |  1: Play..  2: |
00014340  50 61 75 73 65 0a 09 20  20 33 3a 20 46 61 73 74  |Pause..  3: Fast|
00014350  20 46 6f 72 77 61 72 64  0a 09 20 20 34 3a 20 52  | Forward..  4: R|
00014360  65 77 69 6e 64 0a 09 20  20 35 3a 20 52 65 63 6f  |ewind..  5: Reco|
00014370  72 64 0a 0a 52 65 71 75  65 73 74 73 20 74 68 61  |rd..Requests tha|
00014380  74 20 74 68 65 20 70 61  72 65 6e 74 20 64 69 73  |t the parent dis|
00014390  70 6c 61 79 20 73 6f 6d  65 20 69 6e 64 69 63 61  |play some indica|
000143a0  74 69 6f 6e 20 6f 66 20  62 75 73 69 6e 65 73 73  |tion of business|
000143b0  20 28 65 2e 67 2e 20 73  70 69 6e 6e 69 6e 67 20  | (e.g. spinning |
000143c0  6c 6f 67 6f 2c 20 65 74  63 2e 29 2e 20 20 49 66  |logo, etc.).  If|
000143d0  20 74 68 65 20 70 6c 75  67 69 6e 20 68 61 73 20  | the plugin has |
000143e0  73 65 74 20 74 68 65 20  62 75 73 79 20 62 69 74  |set the busy bit|
000143f0  20 69 6e 20 69 74 73 20  3c 50 6c 75 67 49 6e 5f  | in its <PlugIn_|
00014400  4f 70 65 6e 69 6e 67 3d  3e 4d 73 67 5f 50 6c 75  |Opening=>Msg_Plu|
00014410  67 69 6e 5f 34 44 35 34  31 3e 20 6d 65 73 73 61  |gin_4D541> messa|
00014420  67 65 20 74 68 65 6e 20  69 74 20 73 68 6f 75 6c  |ge then it shoul|
00014430  64 20 73 65 6e 64 20 74  68 69 73 20 6d 65 73 73  |d send this mess|
00014440  61 67 65 20 77 69 74 68  20 62 69 74 20 30 20 63  |age with bit 0 c|
00014450  6c 65 61 72 20 77 68 65  6e 20 69 74 20 68 61 73  |lear when it has|
00014460  20 66 69 6e 69 73 68 65  64 20 69 74 73 20 6c 6f  | finished its lo|
00014470  61 64 69 6e 67 2e 0a 0a  54 68 69 73 20 69 73 20  |ading...This is |
00014480  61 6c 73 6f 20 75 73 65  64 20 74 6f 20 6e 6f 74  |also used to not|
00014490  69 66 79 20 74 68 65 20  70 61 72 65 6e 74 20 6f  |ify the parent o|
000144a0  66 20 61 6e 79 20 73 74  61 74 65 20 63 68 61 6e  |f any state chan|
000144b0  67 65 20 62 79 20 74 68  65 20 70 6c 75 67 69 6e  |ge by the plugin|
000144c0  20 69 6e 20 63 61 73 65  20 69 74 20 6e 65 65 64  | in case it need|
000144d0  73 20 74 6f 20 75 70 64  61 74 65 20 61 6e 79 20  |s to update any |
000144e0  75 73 65 72 20 69 6e 74  65 72 66 61 63 65 2e 0a  |user interface..|
000144f0  44 41 54 41 be 02 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00014500  50 6c 75 67 49 6e 5f 41  63 74 69 6f 6e 20 20 28  |PlugIn_Action  (|
00014510  26 34 44 35 35 31 29 0a  52 31 2b 31 36 09 4d 65  |&4D551).R1+16.Me|
00014520  73 73 61 67 65 5f 50 6c  75 67 49 6e 5f 41 63 74  |ssage_PlugIn_Act|
00014530  69 6f 6e 20 28 26 34 44  35 35 31 29 0a 0a 43 6f  |ion (&4D551)..Co|
00014540  6d 6d 6f 6e 20 66 69 65  6c 64 73 3a 0a 52 31 2b  |mmon fields:.R1+|
00014550  32 30 09 46 6c 61 67 73  2c 20 72 65 73 65 72 76  |20.Flags, reserv|
00014560  65 64 20 28 6d 75 73 74  20 62 65 20 7a 65 72 6f  |ed (must be zero|
00014570  29 0a 52 31 2b 32 34 09  50 6c 75 67 49 6e 20 69  |).R1+24.PlugIn i|
00014580  6e 73 74 61 6e 63 65 20  68 61 6e 64 6c 65 0a 52  |nstance handle.R|
00014590  31 2b 32 38 09 42 72 6f  77 73 65 72 20 69 6e 73  |1+28.Browser ins|
000145a0  74 61 6e 63 65 20 68 61  6e 64 6c 65 0a 52 31 2b  |tance handle.R1+|
000145b0  33 32 09 4e 65 77 20 73  74 61 74 65 3a 0a 09 20  |32.New state:.. |
000145c0  20 30 3a 20 53 74 6f 70  0a 09 20 20 31 3a 20 50  | 0: Stop..  1: P|
000145d0  6c 61 79 0a 09 20 20 32  3a 20 50 61 75 73 65 0a  |lay..  2: Pause.|
000145e0  09 20 20 33 3a 20 46 61  73 74 20 46 6f 72 77 61  |.  3: Fast Forwa|
000145f0  72 64 0a 09 20 20 34 3a  20 52 65 77 69 6e 64 0a  |rd..  4: Rewind.|
00014600  09 20 20 35 3a 20 52 65  63 6f 72 64 0a 09 20 20  |.  5: Record..  |
00014610  36 3a 20 4d 75 74 65 0a  09 20 20 37 3a 20 55 6e  |6: Mute..  7: Un|
00014620  6d 75 74 65 0a 0a 54 68  69 73 20 6d 65 73 73 61  |mute..This messa|
00014630  67 65 20 69 73 20 75 73  65 64 20 66 6f 72 20 73  |ge is used for s|
00014640  65 6e 64 69 6e 67 20 73  70 65 63 69 66 69 63 20  |ending specific |
00014650  63 6f 6d 6d 61 6e 64 73  20 74 6f 20 61 20 70 6c  |commands to a pl|
00014660  75 67 69 6e 2e 20 20 4e  6f 74 20 61 6c 6c 20 70  |ugin.  Not all p|
00014670  6c 75 67 69 6e 73 20 77  69 6c 6c 20 75 6e 64 65  |lugins will unde|
00014680  72 73 74 61 6e 64 20 74  68 65 20 63 6f 6d 6d 61  |rstand the comma|
00014690  6e 64 73 20 73 65 6e 74  2e 0a 0a 54 68 65 20 6e  |nds sent...The n|
000146a0  65 77 20 73 74 61 74 65  20 73 65 6e 74 20 69 74  |ew state sent it|
000146b0  20 74 68 65 20 73 74 61  74 65 20 74 68 65 20 70  | the state the p|
000146c0  6c 75 67 69 6e 20 73 68  6f 75 6c 64 20 65 6e 74  |lugin should ent|
000146d0  65 72 2e 20 20 49 66 20  69 74 20 69 73 20 61 6c  |er.  If it is al|
000146e0  72 65 61 64 79 20 69 6e  20 74 68 61 74 20 73 74  |ready in that st|
000146f0  61 74 65 2c 20 74 68 65  6e 20 69 74 20 73 68 6f  |ate, then it sho|
00014700  75 6c 64 20 69 67 6e 6f  72 65 20 74 68 65 20 6d  |uld ignore the m|
00014710  65 73 73 61 67 65 2e 0a  0a 41 66 74 65 72 20 65  |essage...After e|
00014720  6e 74 65 72 69 6e 67 20  74 68 65 20 73 74 61 74  |ntering the stat|
00014730  65 2c 20 69 74 20 73 68  6f 75 6c 64 20 73 65 6e  |e, it should sen|
00014740  64 20 62 61 63 6b 20 61  20 3c 50 6c 75 67 49 6e  |d back a <PlugIn|
00014750  5f 42 75 73 79 3d 3e 4d  73 67 5f 50 6c 75 67 69  |_Busy=>Msg_Plugi|
00014760  6e 5f 34 44 35 35 30 3e  20 6d 65 73 73 61 67 65  |n_4D550> message|
00014770  20 67 69 76 69 6e 67 20  74 68 65 20 6e 65 77 20  | giving the new |
00014780  73 74 61 74 65 20 65 78  63 65 70 74 20 66 6f 72  |state except for|
00014790  20 74 68 65 20 4d 75 74  65 20 61 6e 64 20 55 6e  | the Mute and Un|
000147a0  6d 75 74 65 20 61 63 74  69 6f 6e 73 2e 0a 00 00  |mute actions....|
000147b0  44 41 54 41 42 02 00 00  4d 65 73 73 61 67 65 5f  |DATAB...Message_|
000147c0  50 6c 75 67 49 6e 5f 41  62 6f 72 74 20 20 28 26  |PlugIn_Abort  (&|
000147d0  34 44 35 35 32 29 0a 52  31 2b 31 36 09 4d 65 73  |4D552).R1+16.Mes|
000147e0  73 61 67 65 5f 50 6c 75  67 49 6e 5f 41 62 6f 72  |sage_PlugIn_Abor|
000147f0  74 20 28 26 34 44 35 35  32 29 0a 0a 43 6f 6d 6d  |t (&4D552)..Comm|
00014800  6f 6e 20 66 69 65 6c 64  73 3a 0a 52 31 2b 32 30  |on fields:.R1+20|
00014810  09 46 6c 61 67 73 2c 20  72 65 73 65 72 76 65 64  |.Flags, reserved|
00014820  20 28 6d 75 73 74 20 62  65 20 7a 65 72 6f 29 0a  | (must be zero).|
00014830  52 31 2b 32 34 09 50 6c  75 67 49 6e 20 69 6e 73  |R1+24.PlugIn ins|
00014840  74 61 6e 63 65 20 68 61  6e 64 6c 65 0a 0a 54 68  |tance handle..Th|
00014850  69 73 20 6d 65 73 73 61  67 65 20 69 73 20 73 65  |is message is se|
00014860  6e 64 20 62 79 20 74 68  65 20 62 72 6f 77 73 65  |nd by the browse|
00014870  72 20 77 68 65 6e 20 74  68 65 20 75 73 65 72 20  |r when the user |
00014880  63 6c 69 63 6b 73 20 6f  6e 20 74 68 65 20 53 74  |clicks on the St|
00014890  6f 70 20 69 63 6f 6e 20  28 6f 72 20 70 65 72 66  |op icon (or perf|
000148a0  6f 72 6d 73 20 69 74 73  20 65 71 75 69 76 61 6c  |orms its equival|
000148b0  65 6e 74 29 2e 20 20 54  68 65 20 70 6c 75 67 69  |ent).  The plugi|
000148c0  6e 20 73 68 6f 75 6c 64  20 73 74 6f 70 20 61 73  |n should stop as|
000148d0  20 6d 75 63 68 20 6f 66  20 69 74 73 20 61 63 74  | much of its act|
000148e0  69 76 69 74 79 20 61 73  20 70 6f 73 73 69 62 6c  |ivity as possibl|
000148f0  65 2e 20 20 53 70 65 63  69 66 69 63 61 6c 6c 79  |e.  Specifically|
00014900  2c 20 61 6e 79 74 68 69  6e 67 20 74 68 61 74 20  |, anything that |
00014910  75 70 64 61 74 65 73 20  74 68 65 20 73 63 72 65  |updates the scre|
00014920  65 6e 2c 20 61 6e 79 74  68 69 6e 67 20 74 68 61  |en, anything tha|
00014930  74 20 75 73 65 73 20 73  69 67 6e 69 66 69 63 61  |t uses significa|
00014940  6e 74 20 70 72 6f 63 65  73 73 6f 72 20 74 69 6d  |nt processor tim|
00014950  65 20 61 6e 64 20 61 6e  79 74 68 69 6e 67 20 74  |e and anything t|
00014960  68 61 74 20 61 63 63 65  73 73 65 73 20 74 68 65  |hat accesses the|
00014970  20 6e 65 74 77 6f 72 6b  20 73 68 6f 75 6c 64 20  | network should |
00014980  62 65 20 73 75 73 70 65  6e 64 65 64 2e 0a 0a 4e  |be suspended...N|
00014990  6f 74 65 20 74 68 61 74  20 74 68 69 73 20 6d 65  |ote that this me|
000149a0  73 73 61 67 65 20 69 73  20 73 65 6e 74 20 74 6f  |ssage is sent to|
000149b0  20 65 61 63 68 20 70 6c  75 67 69 6e 20 69 6e 73  | each plugin ins|
000149c0  74 61 6e 63 65 20 69 6e  64 69 76 69 64 75 61 6c  |tance individual|
000149d0  6c 79 20 61 6e 64 20 73  68 6f 75 6c 64 20 62 65  |ly and should be|
000149e0  20 74 72 65 61 74 65 64  20 61 73 20 73 75 63 68  | treated as such|
000149f0  2e 0a 00 00 44 41 54 41  d3 08 00 00 50 6c 75 67  |....DATA....Plug|
00014a00  49 6e 20 50 72 6f 74 6f  63 6f 6c 20 44 61 74 61  |In Protocol Data|
00014a10  20 46 6f 72 6d 61 74 73  0a 54 68 65 20 4d 65 73  | Formats.The Mes|
00014a20  73 61 67 65 5f 50 6c 75  67 49 6e 5f 4f 70 65 6e  |sage_PlugIn_Open|
00014a30  20 63 6f 6e 74 61 69 6e  73 20 61 20 66 69 6c 65  | contains a file|
00014a40  6e 61 6d 65 20 74 68 61  74 20 72 65 66 65 72 73  |name that refers|
00014a50  20 74 6f 20 61 20 66 69  6c 65 20 6f 66 20 70 61  | to a file of pa|
00014a60  72 61 6d 65 74 65 72 73  20 61 6e 64 20 61 74 74  |rameters and att|
00014a70  72 69 62 75 74 65 73 2e  20 20 54 68 69 73 20 70  |ributes.  This p|
00014a80  6c 75 67 69 6e 20 75 73  65 73 20 74 68 69 73 20  |lugin uses this |
00014a90  69 6e 66 6f 72 6d 61 74  69 6f 6e 20 74 6f 20 6c  |information to l|
00014aa0  6f 63 61 74 65 20 74 68  65 20 63 6f 72 72 65 63  |ocate the correc|
00014ab0  74 20 64 61 74 61 2c 20  63 6c 61 73 73 65 73 2c  |t data, classes,|
00014ac0  20 69 6d 70 6c 65 6d 65  6e 74 61 74 69 6f 6e 2c  | implementation,|
00014ad0  20 65 74 63 2e 0a 0a 54  68 65 20 66 69 6c 65 20  | etc...The file |
00014ae0  63 6f 6e 74 61 69 6e 73  20 74 68 65 20 63 6f 6e  |contains the con|
00014af0  63 61 74 65 6e 61 74 69  6f 6e 20 6f 66 20 6f 6e  |catenation of on|
00014b00  65 20 6f 72 20 6d 6f 72  65 20 62 69 6e 61 72 79  |e or more binary|
00014b10  20 72 65 63 6f 72 64 73  20 6f 66 20 74 68 65 20  | records of the |
00014b20  66 6f 72 6d 3a 0a 0a 42  79 74 65 73 09 50 75 72  |form:..Bytes.Pur|
00014b30  70 6f 73 65 0a 23 4c 69  6e 65 0a 34 09 54 79 70  |pose.#Line.4.Typ|
00014b40  65 3a 0a 09 20 09 30 3a  09 74 65 72 6d 69 6e 61  |e:.. .0:.termina|
00014b50  74 6f 72 20 28 74 68 69  73 20 69 73 20 74 68 65  |tor (this is the|
00014b60  20 6c 61 73 74 20 77 6f  72 64 20 69 6e 20 74 68  | last word in th|
00014b70  65 20 66 69 6c 65 29 0a  09 20 09 31 3a 09 64 61  |e file).. .1:.da|
00014b80  74 61 20 66 72 6f 6d 20  50 41 52 41 4d 0a 09 20  |ta from PARAM.. |
00014b90  09 32 3a 09 55 52 4c 20  66 72 6f 6d 20 50 41 52  |.2:.URL from PAR|
00014ba0  41 4d 0a 09 20 09 33 3a  09 6f 62 6a 65 63 74 20  |AM.. .3:.object |
00014bb0  72 65 66 20 66 72 6f 6d  20 50 41 52 41 4d 0a 09  |ref from PARAM..|
00014bc0  20 09 34 3a 09 73 70 65  63 69 61 6c 20 70 61 72  | .4:.special par|
00014bd0  61 6d 65 74 65 72 20 66  72 6f 6d 20 62 72 6f 77  |ameter from brow|
00014be0  73 65 72 0a 09 20 09 35  3a 09 64 61 74 61 20 66  |ser.. .5:.data f|
00014bf0  72 6f 6d 20 4f 42 4a 45  43 54 2f 41 50 50 4c 45  |rom OBJECT/APPLE|
00014c00  54 0a 09 20 09 36 3a 09  55 52 4c 20 66 72 6f 6d  |T.. .6:.URL from|
00014c10  20 4f 42 4a 45 43 54 2f  41 50 50 4c 45 54 0a 34  | OBJECT/APPLET.4|
00014c20  09 73 69 7a 65 20 6f 66  20 72 65 63 6f 72 64 20  |.size of record |
00014c30  28 77 69 74 68 6f 75 74  20 68 65 61 64 65 72 29  |(without header)|
00014c40  3a 0a 09 28 34 2b 6e 2b  70 29 20 2b 20 28 34 2b  |:..(4+n+p) + (4+|
00014c50  73 2b 71 29 20 2b 20 28  34 2b 74 2b 72 29 20 62  |s+q) + (4+t+r) b|
00014c60  79 74 65 73 0a 34 09 73  69 7a 65 20 6f 66 20 6e  |ytes.4.size of n|
00014c70  61 6d 65 20 28 75 6e 70  61 64 64 65 64 29 0a 6e  |ame (unpadded).n|
00014c80  09 6e 61 6d 65 0a 70 20  09 70 61 64 64 69 6e 67  |.name.p .padding|
00014c90  20 74 6f 20 77 6f 72 64  20 62 6f 75 6e 64 61 72  | to word boundar|
00014ca0  79 0a 34 09 73 69 7a 65  20 6f 66 20 64 61 74 61  |y.4.size of data|
00014cb0  20 28 75 6e 70 61 64 64  65 64 29 0a 73 09 64 61  | (unpadded).s.da|
00014cc0  74 61 0a 71 09 70 61 64  64 69 6e 67 20 74 6f 20  |ta.q.padding to |
00014cd0  77 6f 72 64 20 62 6f 75  6e 64 61 72 79 0a 34 09  |word boundary.4.|
00014ce0  73 69 7a 65 20 6f 66 20  4d 49 4d 45 20 74 79 70  |size of MIME typ|
00014cf0  65 20 28 75 6e 70 61 64  64 65 64 29 0a 74 09 4d  |e (unpadded).t.M|
00014d00  49 4d 45 20 74 79 70 65  0a 72 09 70 61 64 64 69  |IME type.r.paddi|
00014d10  6e 67 20 74 6f 20 77 6f  72 64 20 62 6f 75 6e 64  |ng to word bound|
00014d20  61 72 79 0a 0a 49 6e 74  65 67 65 72 73 20 61 72  |ary..Integers ar|
00014d30  65 20 73 74 6f 72 65 64  20 75 6e 20 6c 69 74 74  |e stored un litt|
00014d40  6c 65 2d 65 6e 64 69 61  6e 20 6f 72 64 65 72 2e  |le-endian order.|
00014d50  20 20 46 6c 61 67 73 20  28 70 61 72 61 6d 65 74  |  Flags (paramet|
00014d60  65 72 73 20 77 69 74 68  20 76 6f 69 64 20 76 61  |ers with void va|
00014d70  6c 75 65 20 77 68 6f 73  65 20 70 72 65 73 65 6e  |lue whose presen|
00014d80  63 65 20 6f 72 20 61 62  73 65 6e 63 65 20 6f 6e  |ce or absence on|
00014d90  6c 79 20 69 73 20 73 69  67 6e 69 66 69 63 61 6e  |ly is significan|
00014da0  74 29 20 61 72 65 20 72  65 70 72 65 73 65 6e 74  |t) are represent|
00014db0  65 64 20 62 79 20 61 20  70 61 72 61 6d 65 74 65  |ed by a paramete|
00014dc0  72 20 6f 66 20 74 79 70  65 20 44 41 54 41 20 77  |r of type DATA w|
00014dd0  69 74 68 20 7a 65 72 6f  20 6c 65 6e 67 74 68 2e  |ith zero length.|
00014de0  0a 0a 54 68 65 20 70 61  72 61 6d 65 74 65 72 73  |..The parameters|
00014df0  20 69 6e 63 6c 75 64 65  3a 0a b7 20 61 6c 6c 20  | include:.. all |
00014e00  74 68 65 20 61 74 74 72  69 62 75 74 65 73 20 6f  |the attributes o|
00014e10  66 20 74 68 65 20 4f 42  4a 45 43 54 20 28 6f 72  |f the OBJECT (or|
00014e20  20 6f 74 68 65 72 29 20  65 6c 65 6d 65 6e 74 20  | other) element |
00014e30  74 68 61 74 20 72 65 66  65 72 65 6e 63 65 73 20  |that references |
00014e40  74 68 69 73 20 70 6c 75  67 69 6e 0a b7 20 61 6c  |this plugin.. al|
00014e50  6c 20 74 68 65 20 50 41  52 41 4d 20 65 6c 65 6d  |l the PARAM elem|
00014e60  65 6e 74 73 20 65 6e 63  6c 6f 73 65 64 20 77 69  |ents enclosed wi|
00014e70  74 68 69 6e 20 69 74 0a  b7 20 73 70 65 63 69 61  |thin it.. specia|
00014e80  6c 20 70 61 72 61 6d 65  74 65 72 73 20 63 72 65  |l parameters cre|
00014e90  61 74 65 64 20 62 79 20  74 68 65 20 62 72 6f 77  |ated by the brow|
00014ea0  73 65 72 0a 0a 54 68 65  73 65 20 70 61 72 61 6d  |ser..These param|
00014eb0  65 74 65 72 73 20 61 72  65 20 70 61 73 73 65 64  |eters are passed|
00014ec0  20 65 78 61 63 74 6c 79  20 61 73 20 73 65 65 6e  | exactly as seen|
00014ed0  20 69 6e 20 74 68 65 20  48 54 4d 4c 20 77 69 74  | in the HTML wit|
00014ee0  68 6f 75 74 20 61 6e 79  20 63 6f 6e 76 65 72 73  |hout any convers|
00014ef0  69 6f 6e 73 2e 20 54 68  65 20 64 61 74 61 2f 55  |ions. The data/U|
00014f00  52 4c 2f 72 65 66 20 64  69 73 74 69 6e 63 74 69  |RL/ref distincti|
00014f10  6f 6e 20 69 73 20 61 73  20 67 69 76 65 6e 20 69  |on is as given i|
00014f20  6e 20 74 68 65 20 44 54  44 20 28 6f 72 20 4f 42  |n the DTD (or OB|
00014f30  4a 45 43 54 20 61 74 74  72 69 62 75 74 65 73 29  |JECT attributes)|
00014f40  20 6f 72 20 69 6e 20 74  68 65 20 56 41 4c 55 45  | or in the VALUE|
00014f50  54 59 50 45 20 61 74 74  72 69 62 75 74 65 20 6f  |TYPE attribute o|
00014f60  66 20 74 68 65 20 50 41  52 41 4d 20 65 6c 65 6d  |f the PARAM elem|
00014f70  65 6e 74 2e 0a 0a 54 68  65 20 70 6c 75 67 69 6e  |ent...The plugin|
00014f80  20 6d 61 79 20 69 6d 70  6c 65 6d 65 6e 74 20 69  | may implement i|
00014f90  74 73 20 6f 77 6e 20 55  52 4c 20 66 65 74 63 68  |ts own URL fetch|
00014fa0  69 6e 67 20 63 6f 64 65  2c 20 6f 72 20 69 74 20  |ing code, or it |
00014fb0  6d 61 79 20 68 61 76 65  20 74 68 65 20 62 72 6f  |may have the bro|
00014fc0  77 73 65 72 20 66 65 74  63 68 20 55 52 4c 73 20  |wser fetch URLs |
00014fd0  6f 6e 20 69 74 73 20 62  65 68 61 6c 66 20 62 79  |on its behalf by|
00014fe0  20 69 73 73 75 69 6e 67  20 61 20 3c 55 52 4c 41  | issuing a <URLA|
00014ff0  63 63 65 73 73 3d 3e 4d  73 67 5f 50 6c 75 67 69  |ccess=>Msg_Plugi|
00015000  6e 5f 34 44 35 34 44 3e  20 6d 65 73 73 61 67 65  |n_4D54D> message|
00015010  20 74 6f 20 74 68 65 20  62 72 6f 77 73 65 72 2e  | to the browser.|
00015020  0a 0a 53 70 65 63 69 61  6c 20 70 61 72 61 6d 65  |..Special parame|
00015030  74 65 72 73 20 61 72 65  20 63 72 65 61 74 65 64  |ters are created|
00015040  20 62 79 20 74 68 65 20  62 72 6f 77 73 65 72 20  | by the browser |
00015050  28 72 61 74 68 65 72 20  74 68 61 6e 20 62 65 69  |(rather than bei|
00015060  6e 67 20 70 61 72 74 20  6f 66 20 74 68 65 20 6f  |ng part of the o|
00015070  62 6a 65 63 74 20 65 6c  65 6d 65 6e 74 29 2e 20  |bject element). |
00015080  20 54 68 65 79 20 61 72  65 3a 0a 09 42 41 53 45  | They are:..BASE|
00015090  48 52 45 46 0a 09 20 09  54 68 65 20 66 75 6c 6c  |HREF.. .The full|
000150a0  20 55 52 4c 20 6f 66 20  74 68 65 20 64 6f 63 75  | URL of the docu|
000150b0  6d 65 6e 74 20 63 6f 6e  74 61 69 6e 69 6e 67 20  |ment containing |
000150c0  74 68 69 73 20 6f 62 6a  65 63 74 2e 0a 09 55 53  |this object...US|
000150d0  45 52 41 47 45 4e 54 0a  09 20 09 54 68 65 20 6e  |ERAGENT.. .The n|
000150e0  61 6d 65 20 6f 66 20 74  68 65 20 62 72 6f 77 73  |ame of the brows|
000150f0  65 72 2e 0a 09 55 41 56  45 52 53 49 4f 4e 0a 09  |er...UAVERSION..|
00015100  20 09 56 65 72 73 69 6f  6e 20 6e 75 6d 62 65 72  | .Version number|
00015110  20 6f 66 20 74 68 65 20  62 72 6f 77 73 65 72 20  | of the browser |
00015120  28 75 73 65 72 20 61 67  65 6e 74 29 20 69 6e 20  |(user agent) in |
00015130  66 6f 72 6d 61 74 20 27  78 2e 79 27 2e 20 20 49  |format 'x.y'.  I|
00015140  66 20 74 68 65 20 70 6c  75 67 69 6e 20 6e 65 65  |f the plugin nee|
00015150  64 73 20 61 20 73 70 65  63 69 66 69 63 20 62 72  |ds a specific br|
00015160  6f 77 73 65 72 20 66 65  61 74 75 72 65 2c 20 69  |owser feature, i|
00015170  74 20 6d 61 79 20 72 65  66 75 73 65 20 74 6f 20  |t may refuse to |
00015180  69 6e 69 74 69 61 6c 69  73 65 20 69 66 20 74 68  |initialise if th|
00015190  69 73 20 76 65 72 73 69  6f 6e 20 69 73 20 6e 6f  |is version is no|
000151a0  74 20 68 69 67 68 20 65  6e 6f 75 67 68 2e 0a 09  |t high enough...|
000151b0  41 50 49 56 45 52 53 49  4f 4e 0a 09 20 09 56 65  |APIVERSION.. .Ve|
000151c0  72 73 69 6f 6e 20 6e 75  6d 62 65 72 20 69 66 20  |rsion number if |
000151d0  74 68 65 20 41 50 49 20  69 6e 20 66 6f 72 6d 61  |the API in forma|
000151e0  74 20 27 78 2e 79 27 2e  20 20 43 68 61 6e 67 65  |t 'x.y'.  Change|
000151f0  73 20 69 6e 20 78 20 6d  65 61 6e 20 61 20 6d 61  |s in x mean a ma|
00015200  6a 6f 72 20 69 6e 63 6f  6d 70 61 74 69 62 6c 65  |jor incompatible|
00015210  20 63 68 61 6e 67 65 20  69 6e 20 66 6f 72 6d 61  | change in forma|
00015220  74 73 2e 20 20 49 66 20  74 68 65 20 70 6c 75 67  |ts.  If the plug|
00015230  69 6e 20 64 6f 65 73 6e  27 74 20 75 6e 64 65 72  |in doesn't under|
00015240  73 74 61 6e 64 20 74 68  69 73 20 76 65 72 73 69  |stand this versi|
00015250  6f 6e 20 69 74 20 73 68  6f 75 6c 64 20 72 65 66  |on it should ref|
00015260  75 73 65 20 74 6f 20 69  6e 69 74 69 61 6c 69 73  |use to initialis|
00015270  65 2e 20 20 43 68 61 6e  67 65 73 20 69 6e 20 79  |e.  Changes in y|
00015280  20 6d 65 61 6e 20 73 6f  6d 65 20 6e 65 77 20 66  | mean some new f|
00015290  75 6e 63 74 69 6f 6e 61  6c 69 74 79 20 69 6e 74  |unctionality int|
000152a0  72 6f 64 75 63 65 64 20  69 6e 20 61 20 62 61 63  |roduced in a bac|
000152b0  6b 77 61 72 64 73 20 63  6f 6d 70 61 74 69 62 6c  |kwards compatibl|
000152c0  65 20 77 61 79 2e 0a 00  44 41 54 41 ec 04 00 00  |e way...DATA....|
000152d0  50 6c 75 67 49 6e 20 50  72 6f 74 6f 63 6f 6c 20  |PlugIn Protocol |
000152e0  4d 65 73 73 61 67 65 73  0a 23 50 61 72 65 6e 74  |Messages.#Parent|
000152f0  20 4d 73 67 5f 0a 26 34  44 35 34 30 09 3c 4d 65  | Msg_.&4D540.<Me|
00015300  73 73 61 67 65 5f 50 6c  75 67 49 6e 5f 4f 70 65  |ssage_PlugIn_Ope|
00015310  6e 3d 3e 4d 73 67 5f 50  6c 75 67 69 6e 5f 34 44  |n=>Msg_Plugin_4D|
00015320  35 34 30 3e 0a 26 34 44  35 34 31 09 3c 4d 65 73  |540>.&4D541.<Mes|
00015330  73 61 67 65 5f 50 6c 75  67 49 6e 5f 4f 70 65 6e  |sage_PlugIn_Open|
00015340  69 6e 67 3d 3e 4d 73 67  5f 50 6c 75 67 69 6e 5f  |ing=>Msg_Plugin_|
00015350  34 44 35 34 31 3e 0a 26  34 44 35 34 32 09 3c 4d  |4D541>.&4D542.<M|
00015360  65 73 73 61 67 65 5f 50  6c 75 67 49 6e 5f 43 6c  |essage_PlugIn_Cl|
00015370  6f 73 65 3d 3e 4d 73 67  5f 50 6c 75 67 69 6e 5f  |ose=>Msg_Plugin_|
00015380  34 44 35 34 32 3e 0a 26  34 44 35 34 33 09 3c 4d  |4D542>.&4D543.<M|
00015390  65 73 73 61 67 65 5f 50  6c 75 67 49 6e 5f 43 6c  |essage_PlugIn_Cl|
000153a0  6f 73 65 64 3d 3e 4d 73  67 5f 50 6c 75 67 69 6e  |osed=>Msg_Plugin|
000153b0  5f 34 44 35 34 33 3e 0a  26 34 44 35 34 34 09 3c  |_4D543>.&4D544.<|
000153c0  4d 65 73 73 61 67 65 5f  50 6c 75 67 49 6e 5f 52  |Message_PlugIn_R|
000153d0  65 73 68 61 70 65 3d 3e  4d 73 67 5f 50 6c 75 67  |eshape=>Msg_Plug|
000153e0  69 6e 5f 34 44 35 34 34  3e 0a 26 34 44 35 34 35  |in_4D544>.&4D545|
000153f0  09 3c 4d 65 73 73 61 67  65 5f 50 6c 75 67 49 6e  |.<Message_PlugIn|
00015400  5f 52 65 73 68 61 70 65  5f 52 65 71 75 65 73 74  |_Reshape_Request|
00015410  3d 3e 4d 73 67 5f 50 6c  75 67 69 6e 5f 34 44 35  |=>Msg_Plugin_4D5|
00015420  34 35 3e 0a 26 34 44 35  34 36 09 3c 4d 65 73 73  |45>.&4D546.<Mess|
00015430  61 67 65 5f 50 6c 75 67  49 6e 5f 46 6f 63 75 73  |age_PlugIn_Focus|
00015440  3d 3e 4d 73 67 5f 50 6c  75 67 69 6e 5f 34 44 35  |=>Msg_Plugin_4D5|
00015450  34 36 3e 0a 26 34 44 35  34 37 09 3c 4d 65 73 73  |46>.&4D547.<Mess|
00015460  61 67 65 5f 50 6c 75 67  49 6e 5f 55 6e 6c 6f 63  |age_PlugIn_Unloc|
00015470  6b 3d 3e 4d 73 67 5f 50  6c 75 67 69 6e 5f 34 44  |k=>Msg_Plugin_4D|
00015480  35 34 37 3e 0a 26 34 44  35 34 38 09 3c 4d 65 73  |547>.&4D548.<Mes|
00015490  73 61 67 65 5f 50 6c 75  67 49 6e 5f 53 74 72 65  |sage_PlugIn_Stre|
000154a0  61 6d 4e 65 77 3d 3e 4d  73 67 5f 50 6c 75 67 69  |amNew=>Msg_Plugi|
000154b0  6e 5f 34 44 35 34 38 3e  0a 26 34 44 35 34 39 09  |n_4D548>.&4D549.|
000154c0  3c 4d 65 73 73 61 67 65  5f 50 6c 75 67 49 6e 5f  |<Message_PlugIn_|
000154d0  53 74 72 65 61 6d 44 65  73 74 72 6f 79 3d 3e 4d  |StreamDestroy=>M|
000154e0  73 67 5f 50 6c 75 67 69  6e 5f 34 44 35 34 39 3e  |sg_Plugin_4D549>|
000154f0  0a 26 34 44 35 34 41 09  3c 4d 65 73 73 61 67 65  |.&4D54A.<Message|
00015500  5f 50 6c 75 67 49 6e 5f  53 74 72 65 61 6d 57 72  |_PlugIn_StreamWr|
00015510  69 74 65 3d 3e 4d 73 67  5f 50 6c 75 67 69 6e 5f  |ite=>Msg_Plugin_|
00015520  34 44 35 34 41 3e 0a 26  34 44 35 34 42 09 3c 4d  |4D54A>.&4D54B.<M|
00015530  65 73 73 61 67 65 5f 50  6c 75 67 49 6e 5f 53 74  |essage_PlugIn_St|
00015540  72 65 61 6d 57 72 69 74  74 65 6e 3d 3e 4d 73 67  |reamWritten=>Msg|
00015550  5f 50 6c 75 67 69 6e 5f  34 44 35 34 42 3e 0a 26  |_Plugin_4D54B>.&|
00015560  34 44 35 34 43 09 3c 4d  65 73 73 61 67 65 5f 50  |4D54C.<Message_P|
00015570  6c 75 67 49 6e 5f 53 74  72 65 61 6d 41 73 46 69  |lugIn_StreamAsFi|
00015580  6c 65 3d 3e 4d 73 67 5f  50 6c 75 67 69 6e 5f 34  |le=>Msg_Plugin_4|
00015590  44 35 34 43 3e 0a 26 34  44 35 34 44 09 3c 4d 65  |D54C>.&4D54D.<Me|
000155a0  73 73 61 67 65 5f 50 6c  75 67 49 6e 5f 55 52 4c  |ssage_PlugIn_URL|
000155b0  41 63 63 65 73 73 3d 3e  4d 73 67 5f 50 6c 75 67  |Access=>Msg_Plug|
000155c0  69 6e 5f 34 44 35 34 44  3e 0a 26 34 44 35 34 45  |in_4D54D>.&4D54E|
000155d0  09 3c 4d 65 73 73 61 67  65 5f 50 6c 75 67 49 6e  |.<Message_PlugIn|
000155e0  5f 4e 6f 74 69 66 79 3d  3e 4d 73 67 5f 50 6c 75  |_Notify=>Msg_Plu|
000155f0  67 69 6e 5f 34 44 35 34  45 3e 0a 26 34 44 35 34  |gin_4D54E>.&4D54|
00015600  46 09 3c 4d 65 73 73 61  67 65 5f 50 6c 75 67 49  |F.<Message_PlugI|
00015610  6e 5f 53 74 61 74 75 73  3d 3e 4d 73 67 5f 50 6c  |n_Status=>Msg_Pl|
00015620  75 67 69 6e 5f 34 44 35  34 46 3e 0a 26 34 44 35  |ugin_4D54F>.&4D5|
00015630  35 30 09 3c 4d 65 73 73  61 67 65 5f 50 6c 75 67  |50.<Message_Plug|
00015640  49 6e 5f 42 75 73 79 3d  3e 4d 73 67 5f 50 6c 75  |In_Busy=>Msg_Plu|
00015650  67 69 6e 5f 34 44 35 35  30 3e 0a 26 34 44 35 35  |gin_4D550>.&4D55|
00015660  31 09 3c 4d 65 73 73 61  67 65 5f 50 6c 75 67 49  |1.<Message_PlugI|
00015670  6e 5f 41 63 74 69 6f 6e  3d 3e 4d 73 67 5f 50 6c  |n_Action=>Msg_Pl|
00015680  75 67 69 6e 5f 34 44 35  35 31 3e 0a 26 34 44 35  |ugin_4D551>.&4D5|
00015690  35 32 09 3c 4d 65 73 73  61 67 65 5f 50 6c 75 67  |52.<Message_Plug|
000156a0  49 6e 5f 41 62 6f 72 74  3d 3e 4d 73 67 5f 50 6c  |In_Abort=>Msg_Pl|
000156b0  75 67 69 6e 5f 34 44 35  35 32 3e 0a 0a 23 66 48  |ugin_4D552>..#fH|
000156c0  34 3a 4e 6f 74 65 3a 0a  54 68 69 73 20 70 72 6f  |4:Note:.This pro|
000156d0  74 6f 63 6f 6c 20 77 61  73 20 64 65 66 69 6e 65  |tocol was define|
000156e0  64 20 69 6e 20 61 20 43  6c 61 6e 20 6e 65 77 73  |d in a Clan news|
000156f0  6c 65 74 74 65 72 2e 20  41 73 20 73 75 63 68 20  |letter. As such |
00015700  74 68 65 20 64 6f 63 75  6d 65 6e 74 61 74 69 6f  |the documentatio|
00015710  6e 20 68 61 73 20 6e 6f  74 20 62 65 65 6e 20 63  |n has not been c|
00015720  68 65 63 6b 65 64 20 66  6f 72 20 61 63 63 75 72  |hecked for accur|
00015730  61 63 79 2c 20 6f 72 20  75 73 65 66 75 6c 6e 65  |acy, or usefulne|
00015740  73 73 2e 20 49 20 77 69  6c 6c 20 67 65 74 20 61  |ss. I will get a|
00015750  72 6f 75 6e 64 20 74 6f  20 74 68 69 73 20 65 76  |round to this ev|
00015760  65 6e 74 75 61 6c 6c 79  2e 20 4d 61 6e 79 20 6f  |entually. Many o|
00015770  66 20 74 68 65 20 6c 69  6e 6b 73 20 6d 61 79 20  |f the links may |
00015780  62 65 20 62 72 6f 6b 65  6e 2e 20 49 27 6c 6c 20  |be broken. I'll |
00015790  66 69 78 20 74 68 65 6d  20 77 68 65 6e 20 49 20  |fix them when I |
000157a0  67 65 74 20 61 20 63 68  61 6e 63 65 2e 20 28 45  |get a chance. (E|
000157b0  64 2e 29 0a 44 41 54 41  54 03 00 00 27 53 74 72  |d.).DATAT...'Str|
000157c0  69 6e 67 5f 76 61 6c 75  65 27 20 69 6e 20 74 68  |ing_value' in th|
000157d0  65 20 50 6c 75 67 69 6e  20 50 72 6f 74 6f 63 6f  |e Plugin Protoco|
000157e0  6c 0a 4d 61 6e 79 20 6f  66 20 74 68 65 20 73 74  |l.Many of the st|
000157f0  72 69 6e 67 73 20 70 61  73 73 65 64 20 61 72 6f  |rings passed aro|
00015800  75 6e 64 20 69 6e 20 74  68 69 73 20 70 72 6f 74  |und in this prot|
00015810  6f 63 6f 6c 20 61 72 65  20 6f 66 20 75 6e 73 70  |ocol are of unsp|
00015820  65 63 69 66 69 65 64 20  73 69 7a 65 20 61 6e 64  |ecified size and|
00015830  20 6d 61 79 2c 20 65 73  70 65 63 69 61 6c 6c 79  | may, especially|
00015840  20 69 6e 20 74 68 65 20  63 61 73 65 20 6f 66 20  | in the case of |
00015850  55 52 4c 27 73 2c 20 62  65 20 6c 61 72 67 65 72  |URL's, be larger|
00015860  20 74 68 61 6e 20 63 6f  75 6c 64 20 66 69 74 20  | than could fit |
00015870  77 69 74 68 69 6e 20 74  68 65 20 62 6f 64 79 20  |within the body |
00015880  6f 66 20 61 20 77 69 6d  70 20 6d 65 73 73 61 67  |of a wimp messag|
00015890  65 2e 20 54 68 65 72 65  66 6f 72 65 2c 20 74 68  |e. Therefore, th|
000158a0  65 79 20 61 72 65 20 64  65 66 69 6e 65 64 20 69  |ey are defined i|
000158b0  6e 20 74 68 69 73 20 73  70 65 63 20 61 73 20 7b  |n this spec as {|
000158c0  66 43 6f 64 65 7d 73 74  72 69 6e 67 5f 76 61 6c  |fCode}string_val|
000158d0  75 65 7b 66 7d 73 2e 0a  0a 54 68 65 73 65 20 61  |ue{f}s...These a|
000158e0  72 65 20 61 6c 73 6f 20  75 73 65 64 20 69 6e 20  |re also used in |
000158f0  74 68 65 20 42 72 6f 77  73 65 72 20 73 70 65 63  |the Browser spec|
00015900  20 61 6e 64 20 61 72 65  20 64 65 66 69 6e 65 64  | and are defined|
00015910  20 61 73 20 62 65 69 6e  67 20 65 69 74 68 65 72  | as being either|
00015920  20 3a 0a 23 49 6e 64 65  6e 74 20 32 0a 8f 09 69  | :.#Indent 2...i|
00015930  66 20 5c 3c 20 32 35 36  2c 20 6f 66 66 73 65 74  |f \< 256, offset|
00015940  73 20 66 72 6f 6d 20 74  68 65 20 73 74 61 72 74  |s from the start|
00015950  20 6f 66 20 74 68 65 20  6d 65 73 73 61 67 65 20  | of the message |
00015960  62 6f 64 79 0a 8f 09 69  66 20 5c 3e 20 32 35 36  |body...if \> 256|
00015970  2c 20 70 6f 69 6e 74 65  72 73 20 74 6f 20 64 61  |, pointers to da|
00015980  74 61 20 68 65 6c 64 20  69 6e 20 73 68 61 72 65  |ta held in share|
00015990  64 20 6d 65 6d 6f 72 79  20 28 69 65 20 74 68 65  |d memory (ie the|
000159a0  20 52 4d 41 20 6f 72 20  61 20 64 79 6e 61 6d 69  | RMA or a dynami|
000159b0  63 20 61 72 65 61 29 2e  0a 23 69 6e 64 65 6e 74  |c area)..#indent|
000159c0  0a 0a 49 74 20 69 73 20  61 6c 77 61 79 73 20 74  |..It is always t|
000159d0  68 65 20 72 65 73 70 6f  6e 73 69 62 69 6c 69 74  |he responsibilit|
000159e0  79 20 6f 66 20 74 68 65  20 73 65 6e 64 65 72 20  |y of the sender |
000159f0  74 6f 20 66 72 65 65 20  74 68 65 20 6d 65 6d 6f  |to free the memo|
00015a00  72 79 20 75 73 65 64 20  66 6f 72 20 61 6e 79 20  |ry used for any |
00015a10  70 6f 69 6e 74 65 72 73  20 61 66 74 65 72 20 74  |pointers after t|
00015a20  68 65 79 20 61 72 65 20  6e 6f 20 6c 6f 6e 67 65  |hey are no longe|
00015a30  72 20 72 65 71 75 69 65  64 2e 0a 0a 54 68 65 20  |r requied...The |
00015a40  70 72 6f 74 6f 63 6f 6c  20 69 73 20 64 65 66 69  |protocol is defi|
00015a50  6e 65 64 20 69 6e 20 73  75 63 68 20 61 20 77 61  |ned in such a wa|
00015a60  79 20 74 68 61 74 20 74  68 65 72 65 20 73 68 6f  |y that there sho|
00015a70  75 6c 64 20 61 6c 77 61  79 73 20 62 65 20 61 20  |uld always be a |
00015a80  72 65 70 6c 79 20 72 65  63 65 69 76 65 64 20 6f  |reply received o|
00015a90  72 20 74 68 65 20 6d 65  73 73 61 67 65 20 77 69  |r the message wi|
00015aa0  6c 6c 20 62 65 20 62 6f  75 6e 63 65 64 20 62 79  |ll be bounced by|
00015ab0  20 74 68 65 20 57 69 6d  70 2e 20 49 6e 20 65 69  | the Wimp. In ei|
00015ac0  74 68 65 72 20 63 61 73  65 20 69 74 20 69 73 20  |ther case it is |
00015ad0  74 68 65 6e 20 73 61 66  65 20 66 6f 72 20 74 68  |then safe for th|
00015ae0  65 20 73 65 6e 64 65 72  20 74 6f 20 66 72 65 65  |e sender to free|
00015af0  20 74 68 65 20 6d 65 6d  6f 72 79 20 61 6c 6c 6f  | the memory allo|
00015b00  63 61 74 65 64 2e 20 0a  44 41 54 41 d8 01 00 00  |cated. .DATA....|
00015b10  4d 65 73 73 61 67 65 5f  57 69 6e 64 6f 77 49 63  |Message_WindowIc|
00015b20  6f 6e 69 7a 65 20 20 28  26 34 30 30 43 41 29 0a  |onize  (&400CA).|
00015b30  23 20 50 61 72 74 20 6f  66 20 74 68 65 20 69 63  |# Part of the ic|
00015b40  6f 6e 69 53 65 20 70 72  6f 74 6f 63 6f 6c 2e 0a  |oniSe protocol..|
00015b50  23 20 48 65 79 2c 20 61  6e 64 20 59 6f 75 54 68  |# Hey, and YouTh|
00015b60  6f 75 67 68 74 53 74 75  64 6c 79 43 61 70 73 57  |oughtStudlyCapsW|
00015b70  65 72 65 42 61 64 0a 23  50 61 72 65 6e 74 20 4d  |ereBad.#Parent M|
00015b80  53 47 5f 0a 20 2b 20 32  30 09 77 69 6e 64 6f 77  |SG_. + 20.window|
00015b90  20 68 61 6e 64 6c 65 0a  20 2b 20 32 34 09 74 61  | handle. + 24.ta|
00015ba0  73 6b 20 68 61 6e 64 6c  65 20 6f 66 20 6f 77 6e  |sk handle of own|
00015bb0  65 72 0a 20 2b 20 32 38  09 32 30 20 62 79 74 65  |er. + 28.20 byte|
00015bc0  73 20 6f 66 20 74 69 74  6c 65 20 73 74 72 69 6e  |s of title strin|
00015bd0  67 20 28 6c 61 73 74 20  70 61 72 74 20 6f 66 20  |g (last part of |
00015be0  66 69 72 73 74 20 77 6f  72 64 29 0a 20 0a 54 68  |first word). .Th|
00015bf0  69 73 20 6d 65 73 73 61  67 65 20 69 73 20 62 72  |is message is br|
00015c00  6f 61 64 63 61 73 74 20  62 79 20 74 68 65 20 57  |oadcast by the W|
00015c10  69 6d 70 20 77 68 65 6e  20 61 20 77 69 6e 64 6f  |imp when a windo|
00015c20  77 27 73 20 63 6c 6f 73  65 20 69 63 6f 6e 20 69  |w's close icon i|
00015c30  73 20 73 68 69 66 74 20  63 6c 69 63 6b 65 64 2e  |s shift clicked.|
00015c40  20 49 66 20 61 6e 20 69  63 6f 6e 69 73 65 72 20  | If an iconiser |
00015c50  28 73 69 63 29 20 69 73  20 61 62 73 65 6e 74 20  |(sic) is absent |
00015c60  6e 6f 74 68 69 6e 67 20  77 69 6c 6c 20 68 61 70  |nothing will hap|
00015c70  70 65 6e 2e 20 49 66 20  6f 6e 65 20 69 73 20 70  |pen. If one is p|
00015c80  72 65 73 65 6e 74 20 69  74 20 77 69 6c 6c 20 61  |resent it will a|
00015c90  63 6b 6e 6f 77 6c 65 64  67 65 20 74 68 65 20 6d  |cknowledge the m|
00015ca0  65 73 73 61 67 65 2c 20  61 6e 64 20 73 65 6e 64  |essage, and send|
00015cb0  20 3c 4d 65 73 73 61 67  65 5f 57 69 6e 64 6f 77  | <Message_Window|
00015cc0  49 6e 66 6f 3d 3e 4d 73  67 5f 34 30 30 43 43 3e  |Info=>Msg_400CC>|
00015cd0  20 74 6f 20 74 68 65 20  77 69 6e 64 6f 77 2e 0a  | to the window..|
00015ce0  44 41 54 41 a7 00 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00015cf0  57 69 6e 64 6f 77 43 6c  6f 73 65 64 20 20 28 26  |WindowClosed  (&|
00015d00  34 30 30 43 42 29 0a 23  50 61 72 65 6e 74 20 4d  |400CB).#Parent M|
00015d10  53 47 5f 0a 20 2b 20 32  30 09 77 69 6e 64 6f 77  |SG_. + 20.window|
00015d20  20 68 61 6e 64 6c 65 0a  20 0a 54 68 69 73 20 6d  | handle. .This m|
00015d30  65 73 73 61 67 65 20 69  73 20 62 72 6f 61 64 63  |essage is broadc|
00015d40  61 73 74 20 77 68 6a 65  6e 20 61 20 77 69 6e 64  |ast whjen a wind|
00015d50  6f 77 20 69 73 20 63 6c  6f 73 65 64 2c 20 73 6f  |ow is closed, so|
00015d60  20 74 68 61 74 20 74 68  65 20 69 63 6f 6e 69 73  | that the iconis|
00015d70  65 72 20 63 61 6e 20 72  65 6d 6f 76 65 20 74 68  |er can remove th|
00015d80  65 20 69 63 6f 6e 0a 00  44 41 54 41 1a 03 00 00  |e icon..DATA....|
00015d90  4d 65 73 73 61 67 65 20  46 69 6c 65 72 4f 70 65  |Message FilerOpe|
00015da0  6e 44 69 72 41 74 20 28  26 34 30 32 29 0a 23 50  |nDirAt (&402).#P|
00015db0  61 72 65 6e 74 20 4d 53  47 5f 0a 2b 20 32 30 09  |arent MSG_.+ 20.|
00015dc0  3c 66 69 6c 69 6e 67 20  73 79 73 74 65 6d 20 6e  |<filing system n|
00015dd0  75 6d 62 65 72 3d 3e 4f  53 3a 66 73 79 73 5f 69  |umber=>OS:fsys_i|
00015de0  64 65 6e 74 3e 0a 2b 20  32 34 09 30 20 28 66 6c  |dent>.+ 24.0 (fl|
00015df0  61 67 73 2c 20 61 6c 6c  20 62 69 74 73 20 72 65  |ags, all bits re|
00015e00  73 65 72 76 65 64 29 0a  2b 20 32 38 09 78 20 70  |served).+ 28.x p|
00015e10  6f 73 69 74 69 6f 6e 0a  2b 20 33 32 09 79 20 70  |osition.+ 32.y p|
00015e20  6f 73 69 74 69 6f 6e 0a  2b 20 33 36 09 77 69 64  |osition.+ 36.wid|
00015e30  74 68 0a 2b 20 34 30 09  68 65 69 67 68 74 0a 2b  |th.+ 40.height.+|
00015e40  20 34 34 09 3c 76 69 65  77 20 6d 6f 64 65 3d 3e  | 44.<view mode=>|
00015e50  2e 76 69 65 77 6d 6f 64  65 3e 0a 2b 20 34 35 09  |.viewmode>.+ 45.|
00015e60  6e 61 6d 65 20 6f 66 20  64 69 72 65 63 74 6f 72  |name of director|
00015e70  79 2c 20 7a 65 72 6f 20  74 65 72 6d 69 6e 61 74  |y, zero terminat|
00015e80  65 64 2e 0a 0a 54 68 69  73 20 6d 65 73 73 61 67  |ed...This messag|
00015e90  65 20 69 73 20 73 69 6d  69 6c 61 72 20 74 6f 20  |e is similar to |
00015ea0  3c 4d 65 73 73 61 67 65  5f 46 69 6c 65 72 4f 70  |<Message_FilerOp|
00015eb0  65 6e 44 69 72 3d 3e 4d  53 47 5f 34 30 30 3e 2c  |enDir=>MSG_400>,|
00015ec0  20 62 75 74 20 61 6c 6c  6f 77 73 20 74 68 65 20  | but allows the |
00015ed0  70 6f 73 69 74 69 6f 6e  20 61 6e 64 20 6d 6f 64  |position and mod|
00015ee0  65 20 6f 66 20 74 68 65  20 76 69 65 77 65 72 20  |e of the viewer |
00015ef0  74 6f 20 62 65 20 73 70  65 63 69 66 69 65 64 2e  |to be specified.|
00015f00  0a 0a 50 52 4d 20 73 74  61 74 65 73 20 6f 66 66  |..PRM states off|
00015f10  73 65 74 20 6f 66 20 6e  61 6d 65 20 61 73 20 32  |set of name as 2|
00015f20  35 2e 20 54 68 69 73 20  73 68 6f 75 6c 64 20 62  |5. This should b|
00015f30  65 20 34 35 20 28 6e 6f  74 20 34 38 29 2e 0a 23  |e 45 (not 48)..#|
00015f40  53 75 62 70 61 67 65 20  76 69 65 77 6d 6f 64 65  |Subpage viewmode|
00015f50  0a 46 69 6c 65 72 4f 70  65 6e 44 69 72 41 74 20  |.FilerOpenDirAt |
00015f60  76 69 65 77 6d 6f 64 65  20 66 6c 61 67 73 0a 42  |viewmode flags.B|
00015f70  69 74 73 09 56 61 6c 75  65 09 4d 65 61 6e 69 6e  |its.Value.Meanin|
00015f80  67 0a 23 4c 69 6e 65 0a  30 2d 31 09 30 09 4c 61  |g.#Line.0-1.0.La|
00015f90  72 67 65 20 69 63 6f 6e  73 0a 09 31 09 53 6d 61  |rge icons..1.Sma|
00015fa0  6c 6c 20 69 63 6f 6e 73  0a 09 32 09 46 75 6c 6c  |ll icons..2.Full|
00015fb0  20 69 6e 66 6f 0a 09 33  09 75 6e 64 65 66 69 6e  | info..3.undefin|
00015fc0  65 64 0a 32 2d 33 09 30  09 53 6f 72 74 20 62 79  |ed.2-3.0.Sort by|
00015fd0  20 6e 61 6d 65 0a 09 31  09 53 6f 72 74 20 62 79  | name..1.Sort by|
00015fe0  20 74 79 70 65 0a 09 32  09 53 6f 72 74 20 62 79  | type..2.Sort by|
00015ff0  20 73 69 7a 65 0a 09 33  09 53 6f 72 74 20 62 79  | size..3.Sort by|
00016000  20 64 61 74 65 0a 34 09  30 09 75 73 65 20 64 65  | date.4.0.use de|
00016010  66 61 75 6c 74 20 64 69  73 70 6c 61 79 20 6d 6f  |fault display mo|
00016020  64 65 0a 09 31 09 75 73  65 20 64 69 73 70 6c 61  |de..1.use displa|
00016030  79 20 69 6e 20 62 69 74  73 20 30 2d 31 0a 35 09  |y in bits 0-1.5.|
00016040  30 09 75 73 65 20 64 65  66 61 75 6c 74 20 73 6f  |0.use default so|
00016050  72 74 20 6d 6f 64 65 0a  09 31 09 75 73 65 20 73  |rt mode..1.use s|
00016060  6f 72 74 20 69 6e 20 62  69 74 73 20 32 2d 33 0a  |ort in bits 2-3.|
00016070  0a 50 52 4d 20 70 61 67  65 20 33 2d 32 33 34 20  |.PRM page 3-234 |
00016080  64 65 73 63 72 69 70 74  69 6f 6e 20 6f 66 20 62  |description of b|
00016090  69 74 73 20 32 2d 33 20  69 73 20 77 72 6f 6e 67  |its 2-3 is wrong|
000160a0  2e 0a 00 00 44 41 54 41  dd 00 00 00 4d 65 73 73  |....DATA....Mess|
000160b0  61 67 65 20 46 69 6c 65  72 53 65 6c 65 63 74 69  |age FilerSelecti|
000160c0  6f 6e 44 69 72 65 63 74  6f 72 79 20 28 26 34 30  |onDirectory (&40|
000160d0  33 29 0a 23 50 61 72 65  6e 74 20 4d 53 47 5f 0a  |3).#Parent MSG_.|
000160e0  2b 20 32 30 09 6e 75 6c  6c 20 74 65 72 6d 69 6e  |+ 20.null termin|
000160f0  61 74 65 64 20 64 69 72  65 63 74 6f 72 79 20 6e  |ated directory n|
00016100  61 6d 65 0a 0a 53 65 6e  64 69 6e 67 20 74 68 69  |ame..Sending thi|
00016110  73 20 6d 65 73 73 61 67  65 20 74 6f 20 61 20 3c  |s message to a <|
00016120  46 69 6c 65 72 5f 41 63  74 69 6f 6e 3d 3e 46 69  |Filer_Action=>Fi|
00016130  6c 65 72 41 63 74 69 6f  6e 5f 3e 20 74 61 73 6b  |lerAction_> task|
00016140  20 73 65 74 73 20 74 68  65 20 64 69 72 65 63 74  | sets the direct|
00016150  6f 72 79 20 74 6f 20 61  63 74 20 6f 6e 2c 20 61  |ory to act on, a|
00016160  6e 64 20 63 6c 65 61 72  73 20 74 68 65 20 6c 69  |nd clears the li|
00016170  73 74 20 6f 66 20 6c 65  61 66 6e 61 6d 65 73 2e  |st of leafnames.|
00016180  0a 00 00 00 44 41 54 41  69 01 00 00 4d 65 73 73  |....DATAi...Mess|
00016190  61 67 65 20 46 69 6c 65  72 41 64 64 53 65 6c 65  |age FilerAddSele|
000161a0  63 74 69 6f 6e 20 28 26  34 30 34 29 0a 23 50 61  |ction (&404).#Pa|
000161b0  72 65 6e 74 20 4d 53 47  5f 0a 2b 20 32 30 09 6e  |rent MSG_.+ 20.n|
000161c0  75 6c 6c 20 74 65 72 6d  69 6e 61 74 65 64 20 73  |ull terminated s|
000161d0  70 61 63 65 20 73 65 70  61 72 61 74 65 64 20 6c  |pace separated l|
000161e0  69 73 74 20 6f 66 20 6c  65 61 66 6e 61 6d 65 73  |ist of leafnames|
000161f0  0a 0a 53 65 6e 64 69 6e  67 20 74 68 69 73 20 6d  |..Sending this m|
00016200  65 73 73 61 67 65 20 74  6f 20 61 20 3c 46 69 6c  |essage to a <Fil|
00016210  65 72 5f 41 63 74 69 6f  6e 3d 3e 46 69 6c 65 72  |er_Action=>Filer|
00016220  41 63 74 69 6f 6e 5f 3e  20 74 61 73 6b 20 61 64  |Action_> task ad|
00016230  64 73 20 74 68 65 20 6c  65 61 66 6e 61 6d 65 73  |ds the leafnames|
00016240  20 74 6f 20 74 68 65 20  74 61 73 6b 27 73 20 6c  | to the task's l|
00016250  69 73 74 20 6f 66 20 6c  65 61 66 6e 61 6d 65 73  |ist of leafnames|
00016260  20 74 6f 20 61 63 74 20  75 70 6f 6e 2e 20 54 68  | to act upon. Th|
00016270  65 20 6c 65 61 66 6e 61  6d 65 73 20 61 72 65 20  |e leafnames are |
00016280  66 6f 72 20 66 69 6c 65  73 20 69 6e 20 74 68 65  |for files in the|
00016290  20 64 69 72 65 63 74 6f  72 79 20 77 68 69 63 68  | directory which|
000162a0  20 68 61 73 20 61 6c 72  65 61 64 79 20 62 65 65  | has already bee|
000162b0  6e 20 73 70 65 63 69 66  69 65 64 20 77 69 74 68  |n specified with|
000162c0  20 3c 4d 65 73 73 61 67  65 5f 46 69 6c 65 72 53  | <Message_FilerS|
000162d0  65 6c 65 63 74 69 6f 6e  44 69 72 65 63 74 6f 72  |electionDirector|
000162e0  79 3d 3e 4d 53 47 5f 34  30 33 3e 2e 0a 00 00 00  |y=>MSG_403>.....|
000162f0  44 41 54 41 8b 07 00 00  4d 65 73 73 61 67 65 20  |DATA....Message |
00016300  46 69 6c 65 72 41 63 74  69 6f 6e 20 28 26 34 30  |FilerAction (&40|
00016310  35 29 0a 23 50 61 72 65  6e 74 20 4d 53 47 5f 0a  |5).#Parent MSG_.|
00016320  2b 20 32 30 09 6f 70 65  72 61 74 69 6f 6e 3a 0a  |+ 20.operation:.|
00016330  23 20 47 75 6d 62 79 20  62 72 61 69 6e 20 73 75  |# Gumby brain su|
00016340  72 67 65 6f 6e 2e 0a 09  20 20 30 20 3c 43 6f 70  |rgeon...  0 <Cop|
00016350  79 3d 3e 2e 30 3e 0a 09  20 20 31 20 3c 4d 6f 76  |y=>.0>..  1 <Mov|
00016360  65 20 28 72 65 6e 61 6d  65 29 3d 3e 2e 31 3e 0a  |e (rename)=>.1>.|
00016370  09 20 20 32 20 3c 44 65  6c 65 74 65 3d 3e 2e 32  |.  2 <Delete=>.2|
00016380  3e 0a 09 20 20 33 20 3c  53 65 74 20 61 63 63 65  |>..  3 <Set acce|
00016390  73 73 3d 3e 2e 33 3e 0a  09 20 20 34 20 3c 53 65  |ss=>.3>..  4 <Se|
000163a0  74 20 74 79 70 65 3d 3e  2e 34 3e 0a 09 20 20 35  |t type=>.4>..  5|
000163b0  20 3c 43 6f 75 6e 74 3d  3e 2e 35 3e 0a 09 20 20  | <Count=>.5>..  |
000163c0  36 20 3c 4d 6f 76 65 20  28 62 79 20 63 6f 70 79  |6 <Move (by copy|
000163d0  69 6e 67 2f 64 65 6c 65  74 69 6e 67 29 3d 3e 2e  |ing/deleting)=>.|
000163e0  36 3e 0a 09 20 20 37 20  3c 43 6f 70 79 20 6c 6f  |6>..  7 <Copy lo|
000163f0  63 61 6c 20 28 77 69 74  68 69 6e 20 64 69 72 65  |cal (within dire|
00016400  63 74 6f 72 79 29 3d 3e  2e 37 3e 0a 09 20 20 38  |ctory)=>.7>..  8|
00016410  20 3c 53 74 61 6d 70 20  66 69 6c 65 73 3d 3e 2e  | <Stamp files=>.|
00016420  38 3e 0a 09 20 20 39 20  3c 46 69 6e 64 20 66 69  |8>..  9 <Find fi|
00016430  6c 65 3d 3e 2e 39 3e 0a  2b 20 32 34 09 3c 6f 70  |le=>.9>.+ 24.<op|
00016440  74 69 6f 6e 73 3d 3e 46  69 6c 65 72 41 63 74 69  |tions=>FilerActi|
00016450  6f 6e 5f 6f 70 74 69 6f  6e 73 3e 0a 2b 20 32 38  |on_options>.+ 28|
00016460  09 6f 70 65 72 61 74 69  6f 6e 20 73 70 65 63 69  |.operation speci|
00016470  66 69 63 20 64 61 74 61  0a 0a 53 65 6e 64 69 6e  |fic data..Sendin|
00016480  67 20 74 68 69 73 20 6d  65 73 73 61 67 65 20 74  |g this message t|
00016490  6f 20 61 20 3c 46 69 6c  65 72 5f 41 63 74 69 6f  |o a <Filer_Actio|
000164a0  6e 3d 3e 46 69 6c 65 72  41 63 74 69 6f 6e 5f 3e  |n=>FilerAction_>|
000164b0  20 74 61 73 6b 20 62 6f  74 68 20 73 70 65 63 69  | task both speci|
000164c0  66 69 65 73 20 61 6e 64  20 73 74 61 72 74 73 20  |fies and starts |
000164d0  74 68 65 20 6f 70 65 72  61 74 69 6f 6e 20 74 6f  |the operation to|
000164e0  20 70 65 72 66 6f 72 6d  20 6f 6e 20 74 68 65 20  | perform on the |
000164f0  6c 69 73 74 20 6f 66 20  6c 65 61 66 6e 61 6d 65  |list of leafname|
00016500  73 20 73 65 6e 74 20 77  69 74 68 20 3c 4d 65 73  |s sent with <Mes|
00016510  73 61 67 65 5f 46 69 6c  65 72 41 64 64 53 65 6c  |sage_FilerAddSel|
00016520  65 63 74 69 6f 6e 3d 3e  4d 53 47 5f 34 30 34 3e  |ection=>MSG_404>|
00016530  2e 0a 23 20 47 65 72 70  68 3e 20 49 20 68 61 76  |..# Gerph> I hav|
00016540  65 20 74 68 69 73 20 61  6d 61 7a 69 6e 67 20 66  |e this amazing f|
00016550  65 65 6c 69 6e 67 20 6f  66 20 64 65 6a 61 20 76  |eeling of deja v|
00016560  75 20 2d 20 49 27 76 65  20 73 65 65 6e 20 74 68  |u - I've seen th|
00016570  69 73 20 6c 69 73 74 20  62 65 66 6f 72 65 2c 0a  |is list before,.|
00016580  23 20 20 20 20 20 20 20  20 68 61 76 65 6e 27 74  |#        haven't|
00016590  20 49 20 3f 0a 23 53 75  62 70 61 67 65 20 30 0a  | I ?.#Subpage 0.|
000165a0  46 69 6c 65 72 41 63 74  69 6f 6e 20 30 20 28 43  |FilerAction 0 (C|
000165b0  6f 70 79 29 0a 2b 20 32  30 09 30 20 28 43 6f 70  |opy).+ 20.0 (Cop|
000165c0  79 29 0a 2b 20 32 34 09  3c 6f 70 74 69 6f 6e 73  |y).+ 24.<options|
000165d0  3d 3e 46 69 6c 65 72 41  63 74 69 6f 6e 5f 6f 70  |=>FilerAction_op|
000165e0  74 69 6f 6e 73 3e 0a 2b  20 32 38 09 6e 75 6c 6c  |tions>.+ 28.null|
000165f0  20 74 65 72 6d 69 6e 61  74 65 64 20 64 65 73 74  | terminated dest|
00016600  69 6e 61 74 69 6f 6e 20  64 69 72 65 63 74 6f 72  |ination director|
00016610  79 0a 23 53 75 62 70 61  67 65 20 31 0a 46 69 6c  |y.#Subpage 1.Fil|
00016620  65 72 41 63 74 69 6f 6e  20 31 20 28 52 65 6e 61  |erAction 1 (Rena|
00016630  6d 65 29 0a 2b 20 32 30  09 31 20 28 52 65 6e 61  |me).+ 20.1 (Rena|
00016640  6d 65 29 0a 2b 20 32 34  09 3c 6f 70 74 69 6f 6e  |me).+ 24.<option|
00016650  73 3d 3e 46 69 6c 65 72  41 63 74 69 6f 6e 5f 6f  |s=>FilerAction_o|
00016660  70 74 69 6f 6e 73 3e 0a  2b 20 32 38 09 6e 75 6c  |ptions>.+ 28.nul|
00016670  6c 20 74 65 72 6d 69 6e  61 74 65 64 20 64 65 73  |l terminated des|
00016680  74 69 6e 61 74 69 6f 6e  20 64 69 72 65 63 74 6f  |tination directo|
00016690  72 79 0a 23 53 75 62 70  61 67 65 20 32 0a 46 69  |ry.#Subpage 2.Fi|
000166a0  6c 65 72 41 63 74 69 6f  6e 20 32 20 28 44 65 6c  |lerAction 2 (Del|
000166b0  65 74 65 29 0a 2b 20 32  30 09 32 20 28 44 65 6c  |ete).+ 20.2 (Del|
000166c0  65 74 65 29 0a 2b 20 32  34 09 3c 6f 70 74 69 6f  |ete).+ 24.<optio|
000166d0  6e 73 3d 3e 46 69 6c 65  72 41 63 74 69 6f 6e 5f  |ns=>FilerAction_|
000166e0  6f 70 74 69 6f 6e 73 3e  0a 23 53 75 62 70 61 67  |options>.#Subpag|
000166f0  65 20 33 0a 46 69 6c 65  72 41 63 74 69 6f 6e 20  |e 3.FilerAction |
00016700  33 20 28 53 65 74 20 61  63 63 65 73 73 29 0a 2b  |3 (Set access).+|
00016710  20 32 30 09 33 20 28 53  65 74 20 61 63 63 65 73  | 20.3 (Set acces|
00016720  73 29 0a 2b 20 32 34 09  3c 6f 70 74 69 6f 6e 73  |s).+ 24.<options|
00016730  3d 3e 46 69 6c 65 72 41  63 74 69 6f 6e 5f 6f 70  |=>FilerAction_op|
00016740  74 69 6f 6e 73 3e 0a 2b  20 32 38 09 76 61 6c 75  |tions>.+ 28.valu|
00016750  65 20 6f 66 20 61 63 63  65 73 73 20 62 69 74 73  |e of access bits|
00016760  20 74 6f 20 73 65 74 0a  2b 20 7b 2a 7d 33 30 7b  | to set.+ {*}30{|
00016770  2a 7d 09 6d 61 73 6b 0a  0a 23 74 61 62 0a 4e 65  |*}.mask..#tab.Ne|
00016780  77 20 61 63 63 65 73 73  20 3d 09 28 4f 6c 64 a0  |w access =.(Old.|
00016790  61 63 63 65 73 73 a0 7b  66 43 6f 64 65 7d 42 49  |access.{fCode}BI|
000167a0  43 7b 66 7d a0 6d 61 73  6b 29 20 7b 66 43 6f 64  |C{f}.mask) {fCod|
000167b0  65 7d 4f 52 52 7b 66 7d  20 28 76 61 6c 75 65 a0  |e}ORR{f} (value.|
000167c0  7b 66 43 6f 64 65 7d 41  4e 44 7b 66 7d a0 6d 61  |{fCode}AND{f}.ma|
000167d0  73 6b 29 0a 23 53 75 62  70 61 67 65 20 34 0a 46  |sk).#Subpage 4.F|
000167e0  69 6c 65 72 41 63 74 69  6f 6e 20 34 20 28 53 65  |ilerAction 4 (Se|
000167f0  74 20 74 79 70 65 29 0a  2b 20 32 30 09 34 20 28  |t type).+ 20.4 (|
00016800  53 65 74 20 74 79 70 65  29 0a 2b 20 32 34 09 3c  |Set type).+ 24.<|
00016810  6f 70 74 69 6f 6e 73 3d  3e 46 69 6c 65 72 41 63  |options=>FilerAc|
00016820  74 69 6f 6e 5f 6f 70 74  69 6f 6e 73 3e 0a 2b 20  |tion_options>.+ |
00016830  32 38 09 6e 75 6d 65 72  69 63 20 3c 66 69 6c 65  |28.numeric <file|
00016840  74 79 70 65 3d 3e 46 69  6c 65 74 79 70 65 73 3a  |type=>Filetypes:|
00016850  21 52 6f 6f 74 3e 0a 23  53 75 62 70 61 67 65 20  |!Root>.#Subpage |
00016860  35 0a 46 69 6c 65 72 41  63 74 69 6f 6e 20 35 20  |5.FilerAction 5 |
00016870  28 43 6f 75 6e 74 29 0a  2b 20 32 30 09 35 20 28  |(Count).+ 20.5 (|
00016880  43 6f 75 6e 74 29 0a 2b  20 32 34 09 3c 6f 70 74  |Count).+ 24.<opt|
00016890  69 6f 6e 73 3d 3e 46 69  6c 65 72 41 63 74 69 6f  |ions=>FilerActio|
000168a0  6e 5f 6f 70 74 69 6f 6e  73 3e 0a 23 53 75 62 70  |n_options>.#Subp|
000168b0  61 67 65 20 36 0a 46 69  6c 65 72 41 63 74 69 6f  |age 6.FilerActio|
000168c0  6e 20 36 20 28 4d 6f 76  65 29 0a 2b 20 32 30 09  |n 6 (Move).+ 20.|
000168d0  36 20 28 4d 6f 76 65 29  0a 2b 20 32 34 09 3c 6f  |6 (Move).+ 24.<o|
000168e0  70 74 69 6f 6e 73 3d 3e  46 69 6c 65 72 41 63 74  |ptions=>FilerAct|
000168f0  69 6f 6e 5f 6f 70 74 69  6f 6e 73 3e 0a 2b 20 32  |ion_options>.+ 2|
00016900  38 09 6e 75 6c 6c 20 74  65 72 6d 69 6e 61 74 65  |8.null terminate|
00016910  64 20 64 65 73 74 69 6e  61 74 69 6f 6e 20 64 69  |d destination di|
00016920  72 65 63 74 6f 72 79 0a  23 53 75 62 70 61 67 65  |rectory.#Subpage|
00016930  20 37 0a 46 69 6c 65 72  41 63 74 69 6f 6e 20 37  | 7.FilerAction 7|
00016940  20 28 43 6f 70 79 20 6c  6f 63 61 6c 29 0a 2b 20  | (Copy local).+ |
00016950  32 30 09 37 20 28 43 6f  70 79 20 6c 6f 63 61 6c  |20.7 (Copy local|
00016960  29 0a 2b 20 32 34 09 3c  6f 70 74 69 6f 6e 73 3d  |).+ 24.<options=|
00016970  3e 46 69 6c 65 72 41 63  74 69 6f 6e 5f 6f 70 74  |>FilerAction_opt|
00016980  69 6f 6e 73 3e 0a 2b 20  32 38 09 6e 75 6c 6c 20  |ions>.+ 28.null |
00016990  74 65 72 6d 69 6e 61 74  65 64 20 64 65 73 74 69  |terminated desti|
000169a0  6e 61 74 69 6f 6e 20 6f  62 6a 65 63 74 20 6e 61  |nation object na|
000169b0  6d 65 0a 23 53 75 62 70  61 67 65 20 38 0a 46 69  |me.#Subpage 8.Fi|
000169c0  6c 65 72 41 63 74 69 6f  6e 20 38 20 28 53 74 61  |lerAction 8 (Sta|
000169d0  6d 70 29 0a 2b 20 32 30  09 38 20 28 53 74 61 6d  |mp).+ 20.8 (Stam|
000169e0  70 29 0a 2b 20 32 34 09  3c 6f 70 74 69 6f 6e 73  |p).+ 24.<options|
000169f0  3d 3e 46 69 6c 65 72 41  63 74 69 6f 6e 5f 6f 70  |=>FilerAction_op|
00016a00  74 69 6f 6e 73 3e 0a 23  53 75 62 70 61 67 65 20  |tions>.#Subpage |
00016a10  39 0a 46 69 6c 65 72 41  63 74 69 6f 6e 20 39 20  |9.FilerAction 9 |
00016a20  28 46 69 6e 64 29 0a 2b  20 32 30 09 39 20 28 46  |(Find).+ 20.9 (F|
00016a30  69 6e 64 29 0a 2b 20 32  34 09 3c 6f 70 74 69 6f  |ind).+ 24.<optio|
00016a40  6e 73 3d 3e 46 69 6c 65  72 41 63 74 69 6f 6e 5f  |ns=>FilerAction_|
00016a50  6f 70 74 69 6f 6e 73 3e  0a 2b 20 32 38 09 6e 75  |options>.+ 28.nu|
00016a60  6c 6c 20 74 65 72 6d 69  6e 61 74 65 64 20 6e 61  |ll terminated na|
00016a70  6d 65 20 74 6f 20 66 69  6e 64 0a 00 44 41 54 41  |me to find..DATA|
00016a80  43 01 00 00 4d 65 73 73  61 67 65 20 46 69 6c 65  |C...Message File|
00016a90  72 43 6f 6e 74 72 6f 6c  41 63 74 69 6f 6e 20 28  |rControlAction (|
00016aa0  26 34 30 36 29 0a 23 50  61 72 65 6e 74 20 4d 53  |&406).#Parent MS|
00016ab0  47 5f 0a 2b 20 32 30 09  63 6f 6e 74 72 6f 6c 3a  |G_.+ 20.control:|
00016ac0  0a 09 30 09 61 63 6b 6e  6f 77 6c 65 64 67 65 20  |..0.acknowledge |
00016ad0  63 6f 6e 74 72 6f 6c 20  6d 65 73 73 61 67 65 0a  |control message.|
00016ae0  09 31 09 76 65 72 62 6f  73 65 20 6f 6e 20 28 73  |.1.verbose on (s|
00016af0  68 6f 77 20 74 68 65 20  61 63 74 69 6f 6e 20 77  |how the action w|
00016b00  69 6e 64 6f 77 29 0a 09  32 09 76 65 72 62 6f 73  |indow)..2.verbos|
00016b10  65 20 6f 66 66 20 28 68  69 64 65 20 74 68 65 20  |e off (hide the |
00016b20  61 63 74 69 6f 6e 20 77  69 6e 64 6f 77 29 0a 0a  |action window)..|
00016b30  53 65 6e 64 69 6e 67 20  74 68 69 73 20 6d 65 73  |Sending this mes|
00016b40  73 61 67 65 20 74 6f 20  61 20 3c 46 69 6c 65 72  |sage to a <Filer|
00016b50  5f 41 63 74 69 6f 6e 3d  3e 46 69 6c 65 72 41 63  |_Action=>FilerAc|
00016b60  74 69 6f 6e 5f 3e 20 74  61 73 6b 20 70 65 72 66  |tion_> task perf|
00016b70  6f 72 6d 73 20 76 61 72  69 6f 75 73 20 63 6f 6e  |orms various con|
00016b80  74 72 6f 6c 73 2e 20 43  6f 6e 74 72 6f 6c 20 30  |trols. Control 0|
00016b90  20 63 61 6e 20 62 65 20  75 73 65 64 20 74 6f 20  | can be used to |
00016ba0  73 65 65 20 69 66 20 74  68 65 20 74 61 73 6b 20  |see if the task |
00016bb0  69 73 20 73 74 69 6c 6c  20 62 75 73 79 2e 0a 00  |is still busy...|
00016bc0  44 41 54 41 cd 02 00 00  4d 65 73 73 61 67 65 20  |DATA....Message |
00016bd0  46 69 6c 65 72 53 65 6c  65 63 74 69 6f 6e 20 28  |FilerSelection (|
00016be0  26 34 30 37 29 0a 23 50  61 72 65 6e 74 20 4d 53  |&407).#Parent MS|
00016bf0  47 5f 0a 2b 20 32 30 09  73 65 6c 65 63 74 69 6f  |G_.+ 20.selectio|
00016c00  6e 20 62 6f 75 6e 64 69  6e 67 20 62 6f 78 09 78  |n bounding box.x|
00016c10  30 20 28 73 63 72 65 65  6e 20 63 6f 6f 72 64 73  |0 (screen coords|
00016c20  29 0a 2b 20 32 34 09 20  09 09 09 79 30 0a 2b 20  |).+ 24. ...y0.+ |
00016c30  32 38 09 20 09 09 09 78  31 0a 2b 20 33 32 09 20  |28. ...x1.+ 32. |
00016c40  09 09 09 79 31 0a 2b 20  33 36 09 77 69 64 74 68  |...y1.+ 36.width|
00016c50  20 6f 66 20 65 61 63 68  20 73 65 6c 65 63 74 65  | of each selecte|
00016c60  64 20 69 74 65 6d 0a 2b  20 34 30 09 68 65 69 67  |d item.+ 40.heig|
00016c70  68 74 0a 2b 20 34 34 09  3c 76 69 65 77 20 6d 6f  |ht.+ 44.<view mo|
00016c80  64 65 3d 3e 2e 76 69 65  77 6d 6f 64 65 3e 0a 2b  |de=>.viewmode>.+|
00016c90  20 34 38 09 73 74 61 72  74 20 63 6f 6c 75 6d 6e  | 48.start column|
00016ca0  20 6f 66 20 73 65 6c 65  63 74 69 6f 6e 20 69 6e  | of selection in|
00016cb0  20 77 69 6e 64 6f 77 0a  2b 20 35 32 09 73 74 61  | window.+ 52.sta|
00016cc0  72 74 20 72 6f 77 0a 2b  20 35 36 09 65 6e 64 20  |rt row.+ 56.end |
00016cd0  63 6f 6c 75 6d 6e 0a 2b  20 36 30 09 65 6e 64 20  |column.+ 60.end |
00016ce0  72 6f 77 0a 0a 54 68 69  73 20 6d 65 73 73 61 67  |row..This messag|
00016cf0  65 20 69 73 20 73 65 6e  74 20 66 72 6f 6d 20 74  |e is sent from t|
00016d00  68 65 20 66 69 6c 65 72  20 74 6f 20 61 6e 20 61  |he filer to an a|
00016d10  70 70 6c 69 63 61 74 69  6f 6e 20 77 68 65 6e 20  |pplication when |
00016d20  61 20 73 65 6c 65 63 74  69 6f 6e 20 68 61 73 20  |a selection has |
00016d30  62 65 65 6e 20 64 72 61  67 67 65 64 2c 20 6a 75  |been dragged, ju|
00016d40  73 74 20 62 65 66 6f 72  65 20 74 68 65 20 61 70  |st before the ap|
00016d50  70 6c 69 63 61 74 69 6f  6e 20 72 65 63 69 65 76  |plication reciev|
00016d60  65 73 20 74 68 65 20 6d  75 6c 74 69 70 6c 65 20  |es the multiple |
00016d70  3c 44 61 74 61 4c 6f 61  64 3d 3e 4d 73 67 5f 33  |<DataLoad=>Msg_3|
00016d80  3e 20 6d 65 73 73 61 67  65 73 2e 0a 23 53 75 62  |> messages..#Sub|
00016d90  70 61 67 65 20 76 69 65  77 6d 6f 64 65 0a 46 69  |page viewmode.Fi|
00016da0  6c 65 72 53 65 6c 65 63  74 69 6f 6e 20 76 69 65  |lerSelection vie|
00016db0  77 6d 6f 64 65 20 66 6c  61 67 73 0a 42 69 74 73  |wmode flags.Bits|
00016dc0  09 56 61 6c 75 65 09 4d  65 61 6e 69 6e 67 0a 23  |.Value.Meaning.#|
00016dd0  4c 69 6e 65 0a 30 2d 31  09 30 09 4c 61 72 67 65  |Line.0-1.0.Large|
00016de0  20 69 63 6f 6e 73 0a 09  31 09 53 6d 61 6c 6c 20  | icons..1.Small |
00016df0  69 63 6f 6e 73 0a 09 32  09 46 75 6c 6c 20 69 6e  |icons..2.Full in|
00016e00  66 6f 0a 09 33 09 72 65  73 65 72 76 65 64 0a 32  |fo..3.reserved.2|
00016e10  2d 33 09 30 09 53 6f 72  74 20 62 79 20 6e 61 6d  |-3.0.Sort by nam|
00016e20  65 0a 09 31 09 53 6f 72  74 20 62 79 20 74 79 70  |e..1.Sort by typ|
00016e30  65 0a 09 32 09 53 6f 72  74 20 62 79 20 73 69 7a  |e..2.Sort by siz|
00016e40  65 0a 09 33 09 53 6f 72  74 20 62 79 20 64 61 74  |e..3.Sort by dat|
00016e50  65 0a 0a 50 52 4d 20 70  61 67 65 20 33 2d 32 33  |e..PRM page 3-23|
00016e60  38 20 64 65 73 63 72 69  70 74 69 6f 6e 20 6f 66  |8 description of|
00016e70  20 62 69 74 73 20 32 2d  33 20 69 73 20 70 72 6f  | bits 2-3 is pro|
00016e80  62 61 62 6c 79 20 77 72  6f 6e 67 2e 0a 00 00 00  |bably wrong.....|
00016e90  44 41 54 41 ac 09 00 00  4d 65 73 73 61 67 65 5f  |DATA....Message_|
00016ea0  41 6c 61 72 6d 53 65 74  20 28 26 35 30 30 29 0a  |AlarmSet (&500).|
00016eb0  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 28 46 6f  |#Parent MSG_.(Fo|
00016ec0  72 6d 61 74 20 66 72 6f  6d 20 61 70 70 6c 69 63  |rmat from applic|
00016ed0  61 74 69 6f 6e 20 74 6f  20 21 41 6c 61 72 6d 29  |ation to !Alarm)|
00016ee0  0a 0a 2b 20 32 30 09 30  09 3c 73 65 74 20 61 6c  |..+ 20.0.<set al|
00016ef0  61 72 6d 20 28 6c 6f 63  61 6c 20 74 69 6d 65 29  |arm (local time)|
00016f00  3d 3e 2e 30 3e 0a 09 31  09 3c 73 65 74 20 61 6c  |=>.0>..1.<set al|
00016f10  61 72 6d 20 28 55 54 43  29 3d 3e 2e 31 3e 0a 09  |arm (UTC)=>.1>..|
00016f20  32 09 3c 63 61 6e 63 65  6c 20 61 6c 61 72 6d 3d  |2.<cancel alarm=|
00016f30  3e 2e 32 3e 0a 2b 20 32  34 09 64 65 70 65 6e 64  |>.2>.+ 24.depend|
00016f40  73 20 6f 6e 20 72 65 61  73 6f 6e 20 61 74 20 2b  |s on reason at +|
00016f50  20 32 30 0a 0a 54 68 69  73 20 6d 65 73 73 61 67  | 20..This messag|
00016f60  65 20 63 61 6e 20 62 65  20 75 73 65 64 20 74 6f  |e can be used to|
00016f70  20 73 65 74 2f 63 61 6e  63 65 6c 20 61 6c 61 72  | set/cancel alar|
00016f80  6d 73 2e 20 49 66 20 74  68 65 20 6d 65 73 73 61  |ms. If the messa|
00016f90  67 65 20 69 73 20 73 65  6e 74 20 72 65 63 6f 72  |ge is sent recor|
00016fa0  64 65 64 20 74 68 65 6e  20 21 41 6c 61 72 6d 20  |ded then !Alarm |
00016fb0  61 63 6b 6e 6f 77 6c 65  64 67 65 73 20 77 69 74  |acknowledges wit|
00016fc0  68 20 30 20 69 66 20 73  75 63 63 65 73 73 66 75  |h 0 if successfu|
00016fd0  6c 20 6f 72 20 61 20 6e  75 6c 6c 20 74 65 72 6d  |l or a null term|
00016fe0  69 6e 61 74 65 64 20 65  72 72 6f 72 20 73 74 72  |inated error str|
00016ff0  69 6e 67 2e 20 50 72 65  73 75 6d 61 62 6c 79 20  |ing. Presumably |
00017000  74 68 69 73 20 69 73 20  69 6e 20 74 68 65 20 6d  |this is in the m|
00017010  65 73 73 61 67 65 20 62  6c 6f 63 6b 20 61 74 20  |essage block at |
00017020  2b 20 32 30 2c 20 62 75  74 20 74 68 65 20 50 52  |+ 20, but the PR|
00017030  4d 20 69 73 20 6e 6f 74  20 63 6c 65 61 72 2e 20  |M is not clear. |
00017040  54 68 69 73 20 77 6f 75  6c 64 20 6d 65 61 6e 20  |This would mean |
00017050  74 68 61 74 20 74 68 65  20 6d 65 73 73 61 67 65  |that the message|
00017060  20 62 6c 6f 63 6b 20 66  6f 72 6d 61 74 20 69 73  | block format is|
00017070  20 69 6e 63 6f 6e 73 69  73 74 65 6e 74 2c 20 64  | inconsistent, d|
00017080  65 70 65 6e 64 69 6e 67  20 6f 6e 20 77 68 65 74  |epending on whet|
00017090  68 65 72 20 69 74 20 69  73 20 74 6f 20 6f 72 20  |her it is to or |
000170a0  66 72 6f 6d 20 74 68 65  20 61 70 70 6c 69 63 61  |from the applica|
000170b0  74 69 6f 6e 2e 20 44 27  6f 68 2e 0a 20 0a 4f 64  |tion. D'oh.. .Od|
000170c0  64 6c 79 20 74 68 69 73  20 6d 65 73 73 61 67 65  |dly this message|
000170d0  20 69 73 20 6e 6f 74 20  61 76 61 69 6c 61 62 6c  | is not availabl|
000170e0  65 20 69 6e 20 52 49 53  43 20 4f 53 20 32 2c 20  |e in RISC OS 2, |
000170f0  62 75 74 20 69 74 20 77  6f 75 6c 64 20 73 65 65  |but it would see|
00017100  6d 20 74 68 61 74 20 69  74 20 68 61 64 20 62 65  |m that it had be|
00017110  65 6e 20 70 6c 61 6e 6e  65 64 20 61 73 20 3c 35  |en planned as <5|
00017120  30 32 3d 3e 4d 73 67 5f  35 30 32 3e 20 61 6e 64  |02=>Msg_502> and|
00017130  20 3c 35 30 33 3d 3e 4d  73 67 5f 35 30 33 3e 20  | <503=>Msg_503> |
00017140  61 72 65 20 70 72 65 73  65 6e 74 20 69 6e 20 52  |are present in R|
00017150  49 53 43 20 4f 53 20 32  2e 0a 0a 4e 6f 74 65 20  |ISC OS 2...Note |
00017160  74 68 61 74 20 3c 4d 65  73 73 61 67 65 5f 41 6c  |that <Message_Al|
00017170  61 72 6d 53 65 74 20 30  3d 3e 2e 30 3e 20 69 73  |armSet 0=>.0> is|
00017180  20 63 61 70 61 62 6c 65  20 6f 66 20 61 64 64 69  | capable of addi|
00017190  6e 67 20 6f 75 74 2d 6f  66 2d 72 61 6e 67 65 20  |ng out-of-range |
000171a0  61 6c 61 72 6d 73 20 74  6f 20 74 68 65 20 64 61  |alarms to the da|
000171b0  74 61 62 61 73 65 2c 20  77 68 69 63 68 20 21 41  |tabase, which !A|
000171c0  6c 61 72 6d 20 77 69 6c  6c 20 66 61 75 6c 74 20  |larm will fault |
000171d0  6f 6e 20 72 65 64 72 61  77 20 28 62 75 74 20 6e  |on redraw (but n|
000171e0  6f 74 20 66 61 75 6c 74  20 6f 6e 20 73 61 76 65  |ot fault on save|
000171f0  21 29 2e 0a 0a 57 68 65  6e 20 74 68 65 20 74 61  |!)...When the ta|
00017200  73 6b 20 61 6c 61 72 6d  20 67 6f 65 73 20 6f 66  |sk alarm goes of|
00017210  66 20 21 41 6c 61 72 6d  20 62 72 6f 61 64 63 61  |f !Alarm broadca|
00017220  73 74 73 20 3c 4d 65 73  73 61 67 65 5f 41 6c 61  |sts <Message_Ala|
00017230  72 6d 47 6f 6e 65 4f 66  66 3d 3e 4d 53 47 5f 35  |rmGoneOff=>MSG_5|
00017240  30 31 3e 2c 20 77 68 69  63 68 20 79 6f 75 72 20  |01>, which your |
00017250  61 70 70 6c 69 63 61 74  69 6f 6e 20 73 68 6f 75  |application shou|
00017260  6c 64 20 61 63 6b 6e 6f  77 6c 65 64 67 65 2e 0a  |ld acknowledge..|
00017270  23 53 75 62 70 61 67 65  20 31 0a 4d 65 73 73 61  |#Subpage 1.Messa|
00017280  67 65 5f 41 6c 61 72 6d  53 65 74 20 31 0a 2b 20  |ge_AlarmSet 1.+ |
00017290  32 30 09 09 31 20 28 73  65 74 20 55 54 43 20 61  |20..1 (set UTC a|
000172a0  6c 61 72 6d 29 0a 2b 20  32 34 09 09 35 20 62 79  |larm).+ 24..5 by|
000172b0  74 65 20 55 54 43 20 74  69 6d 65 0a 2b 20 7b 2a  |te UTC time.+ {*|
000172c0  7d 33 30 7b 2a 7d 09 6e  61 6d 65 20 6f 66 20 61  |}30{*}.name of a|
000172d0  70 70 6c 69 63 61 74 69  6f 6e 20 28 6e 75 6c 6c  |pplication (null|
000172e0  20 74 65 72 6d 69 6e 61  74 65 64 29 0a 2b 20 2f  | terminated).+ /|
000172f0  6e 2f 09 61 70 70 6c 69  63 61 74 69 6f 6e 27 73  |n/.application's|
00017300  20 69 64 65 6e 74 69 66  69 65 72 20 28 6e 75 6c  | identifier (nul|
00017310  6c 20 74 65 72 6d 69 6e  61 74 65 64 29 0a 0a 54  |l terminated)..T|
00017320  68 69 73 20 6d 65 73 73  61 67 65 20 69 6e 73 74  |his message inst|
00017330  72 75 63 74 73 20 21 41  6c 61 72 6d 20 74 6f 20  |ructs !Alarm to |
00017340  73 65 74 20 61 6e 20 61  6c 61 72 6d 2e 20 4e 61  |set an alarm. Na|
00017350  6d 65 20 61 6e 64 20 69  64 65 6e 74 69 66 69 65  |me and identifie|
00017360  72 20 6d 75 73 74 20 65  61 63 68 20 62 65 20 34  |r must each be 4|
00017370  30 20 6f 72 20 6c 65 73  73 20 62 79 74 65 73 2e  |0 or less bytes.|
00017380  0a 23 53 75 62 70 61 67  65 20 30 0a 4d 65 73 73  |.#Subpage 0.Mess|
00017390  61 67 65 5f 41 6c 61 72  6d 53 65 74 20 30 0a 2b  |age_AlarmSet 0.+|
000173a0  20 32 30 09 30 20 28 73  65 74 20 6c 6f 63 61 6c  | 20.0 (set local|
000173b0  20 74 69 6d 65 20 61 6c  61 72 6d 29 0a 2b 20 32  | time alarm).+ 2|
000173c0  34 09 79 65 61 72 20 61  73 20 6c 6f 77 2d 62 79  |4.year as low-by|
000173d0  74 65 2c 20 68 69 67 68  20 62 79 74 65 0a 2b 20  |te, high byte.+ |
000173e0  32 36 09 6d 6f 6e 74 68  2c 20 4a 61 6e 61 75 61  |26.month, Janaua|
000173f0  72 79 20 69 73 20 31 0a  2b 20 32 37 09 64 61 74  |ry is 1.+ 27.dat|
00017400  65 0a 2b 20 32 38 09 68  6f 75 72 0a 2b 20 32 39  |e.+ 28.hour.+ 29|
00017410  09 6d 69 6e 75 74 65 0a  2b 20 33 30 7b 2a 7d 09  |.minute.+ 30{*}.|
00017420  6e 61 6d 65 20 6f 66 20  61 70 70 6c 69 63 61 74  |name of applicat|
00017430  69 6f 6e 20 28 6e 75 6c  6c 20 74 65 72 6d 69 6e  |ion (null termin|
00017440  61 74 65 64 29 0a 2b 20  2f 6e 2f 09 61 70 70 6c  |ated).+ /n/.appl|
00017450  69 63 61 74 69 6f 6e 27  73 20 69 64 65 6e 74 69  |ication's identi|
00017460  66 69 65 72 20 28 6e 75  6c 6c 20 74 65 72 6d 69  |fier (null termi|
00017470  6e 61 74 65 64 29 0a 0a  54 68 69 73 20 6d 65 73  |nated)..This mes|
00017480  73 61 67 65 20 69 6e 73  74 72 75 63 74 73 20 21  |sage instructs !|
00017490  41 6c 61 72 6d 20 74 6f  20 73 65 74 20 61 6e 20  |Alarm to set an |
000174a0  61 6c 61 72 6d 2e 20 4e  61 6d 65 20 61 6e 64 20  |alarm. Name and |
000174b0  69 64 65 6e 74 69 66 69  65 72 20 6d 75 73 74 20  |identifier must |
000174c0  65 61 63 68 20 62 65 20  34 30 20 6f 72 20 6c 65  |each be 40 or le|
000174d0  73 73 20 62 79 74 65 73  2e 20 21 41 6c 61 72 6d  |ss bytes. !Alarm|
000174e0  20 70 65 72 66 6f 72 6d  73 20 72 61 6e 67 65 20  | performs range |
000174f0  63 68 65 63 6b 73 20 28  73 6f 20 61 6e 20 68 6f  |checks (so an ho|
00017500  75 72 20 6f 66 20 33 30  20 67 69 76 65 73 20 36  |ur of 30 gives 6|
00017510  61 6d 20 74 68 65 20 6e  65 78 74 20 64 61 79 29  |am the next day)|
00017520  20 62 75 74 20 77 69 6c  6c 20 68 61 70 70 69 6c  | but will happil|
00017530  79 20 61 64 64 20 61 6c  61 72 6d 73 20 6f 75 74  |y add alarms out|
00017540  20 6f 66 20 74 68 65 20  72 61 6e 67 65 20 28 72  | of the range (r|
00017550  6f 75 67 68 6c 79 20 5c  3c 20 31 39 30 30 20 6f  |oughly \< 1900 o|
00017560  72 20 3e 20 32 32 34 37  29 2c 20 61 6e 64 20 74  |r > 2247), and t|
00017570  68 65 6e 20 71 75 69 74  20 77 69 74 68 20 61 6e  |hen quit with an|
00017580  20 65 72 72 6f 72 20 77  68 65 6e 20 69 74 20 61  | error when it a|
00017590  74 74 65 6d 70 74 73 20  74 6f 20 64 69 73 70 6c  |ttempts to displ|
000175a0  61 79 20 74 68 65 6d 2e  20 42 79 20 6b 65 65 70  |ay them. By keep|
000175b0  69 6e 67 20 74 68 69 73  20 77 69 6e 64 6f 77 20  |ing this window |
000175c0  63 6c 6f 73 65 64 2c 20  61 6e 64 20 73 61 76 69  |closed, and savi|
000175d0  6e 67 20 74 68 65 20 61  6c 61 72 6d 73 20 66 69  |ng the alarms fi|
000175e0  6c 65 20 77 68 65 6e 20  71 75 69 74 74 69 6e 67  |le when quitting|
000175f0  20 21 41 6c 61 72 6d 2c  20 69 74 20 69 73 20 70  | !Alarm, it is p|
00017600  6f 73 73 69 62 6c 65 20  74 6f 20 77 72 69 74 65  |ossible to write|
00017610  20 74 68 65 73 65 20 69  6c 6c 65 67 61 6c 20 61  | these illegal a|
00017620  6c 61 72 6d 73 20 74 6f  20 61 20 66 69 6c 65 2e  |larms to a file.|
00017630  20 46 6f 72 74 75 6e 61  74 65 6c 79 20 74 68 65  | Fortunately the|
00017640  79 20 63 61 6e 20 62 65  20 64 65 6c 65 74 65 64  |y can be deleted|
00017650  20 77 69 74 68 20 3c 4d  65 73 73 61 67 65 5f 41  | with <Message_A|
00017660  6c 61 72 6d 53 65 74 20  32 3d 3e 2e 32 3e 2e 0a  |larmSet 2=>.2>..|
00017670  0a 4e 6f 74 65 20 74 68  61 74 20 74 68 65 20 36  |.Note that the 6|
00017680  20 62 79 74 65 20 62 6c  6f 63 6b 20 66 72 6f 6d  | byte block from|
00017690  20 2b 20 32 34 20 69 73  20 68 6f 77 20 21 41 6c  | + 24 is how !Al|
000176a0  61 72 6d 20 73 74 6f 72  65 73 20 74 69 6d 65 73  |arm stores times|
000176b0  20 69 6e 20 74 68 65 20  63 75 72 72 65 6e 74 20  | in the current |
000176c0  66 69 6c 65 20 66 6f 72  6d 61 74 2e 0a 23 20 47  |file format..# G|
000176d0  65 72 70 68 3e 20 41 6e  20 61 6d 61 7a 69 6e 67  |erph> An amazing|
000176e0  6c 79 20 62 61 64 6c 79  20 70 6c 61 6e 6e 65 64  |ly badly planned|
000176f0  20 74 68 69 6e 67 20 49  4d 4f 2e 20 57 68 79 20  | thing IMO. Why |
00017700  6e 6f 74 20 75 73 65 20  74 68 65 20 35 62 79 74  |not use the 5byt|
00017710  65 20 74 69 6d 65 0a 23  20 20 20 20 20 20 20 20  |e time.#        |
00017720  62 6c 6f 63 6b 20 75 73  65 64 20 62 79 20 74 68  |block used by th|
00017730  65 20 72 65 73 74 20 6f  66 20 74 68 65 20 73 79  |e rest of the sy|
00017740  73 74 65 6d 20 3f 0a 23  53 75 62 70 61 67 65 20  |stem ?.#Subpage |
00017750  32 0a 4d 65 73 73 61 67  65 5f 41 6c 61 72 6d 53  |2.Message_AlarmS|
00017760  65 74 20 32 0a 2b 20 32  30 09 32 20 28 63 61 6e  |et 2.+ 20.2 (can|
00017770  63 65 6c 20 61 6c 61 72  6d 29 0a 2b 20 32 34 09  |cel alarm).+ 24.|
00017780  6e 61 6d 65 20 6f 66 20  61 70 70 6c 69 63 61 74  |name of applicat|
00017790  69 6f 6e 20 28 6e 75 6c  6c 20 74 65 72 6d 69 6e  |ion (null termin|
000177a0  61 74 65 64 29 0a 2b 20  2f 6e 2f 09 61 70 70 6c  |ated).+ /n/.appl|
000177b0  69 63 61 74 69 6f 6e 27  73 20 69 64 65 6e 74 69  |ication's identi|
000177c0  66 69 65 72 20 28 6e 75  6c 6c 20 74 65 72 6d 69  |fier (null termi|
000177d0  6e 61 74 65 64 29 0a 0a  54 68 69 73 20 6d 65 73  |nated)..This mes|
000177e0  73 61 67 65 20 69 6e 73  74 72 75 63 74 73 20 21  |sage instructs !|
000177f0  41 6c 61 72 6d 20 74 6f  20 64 65 6c 65 74 65 20  |Alarm to delete |
00017800  61 6e 20 61 6c 61 72 6d  20 74 68 61 74 20 65 78  |an alarm that ex|
00017810  61 63 74 6c 79 20 6d 61  74 63 68 65 73 20 62 6f  |actly matches bo|
00017820  74 68 20 74 68 65 20 6e  61 6d 65 20 61 6e 64 20  |th the name and |
00017830  69 64 65 6e 74 69 66 69  65 72 2e 0a 44 41 54 41  |identifier..DATA|
00017840  a9 01 00 00 4d 65 73 73  61 67 65 5f 41 6c 61 72  |....Message_Alar|
00017850  6d 47 6f 6e 65 4f 66 66  20 28 26 35 30 31 29 0a  |mGoneOff (&501).|
00017860  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 2b 20 32  |#Parent MSG_.+ 2|
00017870  30 09 6e 61 6d 65 20 6f  66 20 61 70 70 6c 69 63  |0.name of applic|
00017880  61 74 69 6f 6e 20 28 6e  75 6c 6c 20 74 65 72 6d  |ation (null term|
00017890  69 6e 61 74 65 64 29 0a  2b 20 2f 6e 2f 09 61 70  |inated).+ /n/.ap|
000178a0  70 6c 69 63 61 74 69 6f  6e 27 73 20 69 64 65 6e  |plication's iden|
000178b0  74 69 66 69 65 72 20 28  6e 75 6c 6c 20 74 65 72  |tifier (null ter|
000178c0  6d 69 6e 61 74 65 64 29  0a 0a 54 68 69 73 20 6d  |minated)..This m|
000178d0  65 73 73 61 67 65 20 69  73 20 62 72 6f 61 64 63  |essage is broadc|
000178e0  61 73 74 20 62 79 20 21  41 6c 61 72 6d 20 77 68  |ast by !Alarm wh|
000178f0  65 6e 20 61 6e 20 61 70  70 6c 69 63 61 74 69 6f  |en an applicatio|
00017900  6e 20 61 6c 61 72 6d 20  67 6f 65 73 20 6f 66 66  |n alarm goes off|
00017910  2e 20 49 66 20 74 68 65  20 6d 65 73 73 61 67 65  |. If the message|
00017920  20 69 73 20 6e 6f 74 20  61 63 6b 6e 6f 77 6c 65  | is not acknowle|
00017930  64 67 65 64 20 21 41 6c  61 72 6d 20 27 70 72 6f  |dged !Alarm 'pro|
00017940  6d 70 74 73 27 20 74 68  65 20 75 73 65 72 20 74  |mpts' the user t|
00017950  6f 20 73 74 61 72 74 20  74 68 65 20 61 70 70 6c  |o start the appl|
00017960  69 63 61 74 69 6f 6e 20  28 77 69 74 68 20 61 20  |ication (with a |
00017970  6e 6f 6e 2d 6d 75 6c 74  69 2d 74 61 73 6b 69 6e  |non-multi-taskin|
00017980  67 20 65 72 72 6f 72 20  62 6f 78 29 2c 20 61 6e  |g error box), an|
00017990  64 20 64 65 66 65 72 73  20 74 68 65 20 61 6c 61  |d defers the ala|
000179a0  72 6d 20 66 6f 72 20 31  20 6d 69 6e 75 74 65 2c  |rm for 1 minute,|
000179b0  20 62 65 66 6f 72 65 20  72 65 73 74 61 72 74 69  | before restarti|
000179c0  6e 67 20 74 68 69 73 20  6d 65 73 73 61 67 65 20  |ng this message |
000179d0  62 72 6f 61 64 63 61 73  74 20 70 72 6f 63 65 64  |broadcast proced|
000179e0  75 72 65 2e 0a 00 00 00  44 41 54 41 e0 02 00 00  |ure.....DATA....|
000179f0  4d 65 73 73 61 67 65 5f  44 61 74 61 53 61 76 64  |Message_DataSavd|
00017a00  20 28 31 33 29 0a 23 50  61 72 65 6e 74 20 4d 53  | (13).#Parent MS|
00017a10  47 5f 0a 54 68 69 73 20  6d 65 73 73 61 67 65 20  |G_.This message |
00017a20  69 73 20 73 65 6e 74 20  62 61 63 6b 20 74 6f 20  |is sent back to |
00017a30  74 68 65 20 6f 72 69 67  69 6e 61 74 6f 72 20 6f  |the originator o|
00017a40  66 20 61 20 73 61 76 65  64 20 66 69 6c 65 20 69  |f a saved file i|
00017a50  66 20 61 74 20 73 6f 6d  65 20 6c 61 74 65 72 20  |f at some later |
00017a60  74 69 6d 65 20 69 74 20  62 65 63 6f 6d 65 73 20  |time it becomes |
00017a70  22 73 61 66 65 22 20 28  7b 2f 7d 69 2e 65 2e 7b  |"safe" ({/}i.e.{|
00017a80  2f 7d 20 6f 6e 20 64 69  73 63 29 2e 20 59 6f 75  |/} on disc). You|
00017a90  20 73 68 6f 75 6c 64 20  63 6f 6d 70 61 72 65 20  | should compare |
00017aa0  74 68 65 20 3c 79 6f 75  72 5f 72 65 66 3d 3e 57  |the <your_ref=>W|
00017ab0  69 6d 70 5f 53 65 6e 64  4d 65 73 73 61 67 65 31  |imp_SendMessage1|
00017ac0  3e 20 69 6e 20 74 68 69  73 20 6d 65 73 73 61 67  |> in this messag|
00017ad0  65 20 77 69 74 68 20 74  68 65 20 6d 79 5f 72 65  |e with the my_re|
00017ae0  66 20 79 6f 75 20 73 74  6f 72 65 64 20 77 68 65  |f you stored whe|
00017af0  6e 20 79 6f 75 20 73 65  6e 74 20 74 68 65 20 6f  |n you sent the o|
00017b00  72 69 67 69 6e 61 6c 20  3c 44 61 74 61 53 61 76  |riginal <DataSav|
00017b10  65 3d 3e 4d 73 67 5f 31  3e 20 6d 65 73 73 61 67  |e=>Msg_1> messag|
00017b20  65 20 2d 20 69 66 20 74  68 65 79 20 74 61 6c 6c  |e - if they tall|
00017b30  79 20 74 68 65 20 66 69  6c 65 20 63 61 6e 20 6e  |y the file can n|
00017b40  6f 77 20 62 65 20 6d 61  72 6b 65 64 20 61 73 20  |ow be marked as |
00017b50  73 61 66 65 2c 20 75 6e  6c 65 73 73 20 74 68 65  |safe, unless the|
00017b60  20 75 73 65 72 20 68 61  64 20 65 64 69 74 65 64  | user had edited|
00017b70  20 69 74 20 69 6e 20 74  68 65 20 6d 65 61 6e 74  | it in the meant|
00017b80  69 6d 65 2e 0a 0a 50 72  6f 62 61 62 6c 79 20 74  |ime...Probably t|
00017b90  68 65 20 62 65 73 74 20  69 6d 70 6c 65 6d 65 6e  |he best implemen|
00017ba0  74 61 74 69 6f 6e 20 69  73 20 66 6f 72 20 79 6f  |tation is for yo|
00017bb0  75 72 20 70 72 6f 67 72  61 6d 20 74 6f 20 73 74  |ur program to st|
00017bc0  6f 72 65 20 74 68 65 20  6d 79 5f 72 65 66 20 77  |ore the my_ref w|
00017bd0  69 74 68 20 74 68 65 20  66 69 6c 65 2c 20 62 75  |ith the file, bu|
00017be0  74 20 7a 65 72 6f 20 69  74 20 6f 6e 20 61 6e 79  |t zero it on any|
00017bf0  20 6d 6f 64 69 66 69 63  61 74 69 6f 6e 2c 20 61  | modification, a|
00017c00  73 20 30 20 77 69 6c 6c  20 6e 6f 74 20 62 65 20  |s 0 will not be |
00017c10  61 20 76 61 6c 69 64 20  79 6f 75 72 5f 72 65 66  |a valid your_ref|
00017c20  2e 20 49 74 20 61 70 70  65 61 72 73 20 74 68 61  |. It appears tha|
00017c30  74 20 74 68 69 73 20 6d  65 73 73 61 67 65 20 69  |t this message i|
00017c40  73 20 64 65 73 69 67 6e  65 64 20 66 6f 72 20 63  |s designed for c|
00017c50  61 73 65 73 20 77 68 65  72 65 20 6f 6e 65 20 70  |ases where one p|
00017c60  72 6f 67 72 61 6d 20 73  61 76 65 73 20 61 20 66  |rogram saves a f|
00017c70  69 6c 65 20 74 6f 20 61  6e 6f 74 68 65 72 20 70  |ile to another p|
00017c80  72 6f 67 72 61 6d 2c 20  61 6e 64 20 74 68 65 6e  |rogram, and then|
00017c90  20 74 68 61 74 20 73 65  63 6f 6e 64 20 70 72 6f  | that second pro|
00017ca0  67 72 61 6d 20 73 61 76  65 73 20 74 68 65 20 75  |gram saves the u|
00017cb0  6e 6d 6f 64 69 66 69 65  64 20 66 69 6c 65 20 74  |nmodified file t|
00017cc0  6f 20 64 69 73 63 2e 0a  44 41 54 41 e1 00 00 00  |o disc..DATA....|
00017cd0  4d 65 73 73 61 67 65 5f  53 68 75 74 64 6f 77 6e  |Message_Shutdown|
00017ce0  20 20 28 31 34 29 0a 23  50 61 72 65 6e 74 20 4d  |  (14).#Parent M|
00017cf0  53 47 5f 0a 2b 20 32 30  09 30 20 28 61 6c 6c 20  |SG_.+ 20.0 (all |
00017d00  66 6c 61 67 73 20 72 65  73 65 72 76 65 64 29 0a  |flags reserved).|
00017d10  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 69 73  |.This message is|
00017d20  20 62 72 6f 61 64 63 61  73 74 20 77 68 65 6e 20  | broadcast when |
00017d30  3c 54 61 73 6b 4d 61 6e  61 67 65 72 5f 53 68 75  |<TaskManager_Shu|
00017d40  74 64 6f 77 6e 3e 20 69  73 20 63 61 6c 6c 65 64  |tdown> is called|
00017d50  20 77 69 74 68 20 62 69  74 20 33 20 6f 66 20 52  | with bit 3 of R|
00017d60  30 20 73 65 74 2c 20 74  6f 20 69 6e 64 69 63 61  |0 set, to indica|
00017d70  74 65 64 20 61 20 66 6f  72 63 65 64 20 73 68 75  |ted a forced shu|
00017d80  74 64 6f 77 6e 2c 20 66  6f 72 20 65 78 61 6d 70  |tdown, for examp|
00017d90  6c 65 20 64 75 65 20 74  6f 20 70 6f 77 65 72 20  |le due to power |
00017da0  66 61 69 6c 75 72 65 2e  0a 00 00 00 44 41 54 41  |failure.....DATA|
00017db0  40 04 00 00 4d 65 73 73  61 67 65 5f 45 64 69 74  |@...Message_Edit|
00017dc0  43 75 72 73 6f 72 20 28  26 34 35 44 38 35 29 0a  |Cursor (&45D85).|
00017dd0  23 50 61 72 65 6e 74 20  4d 53 47 5f 0a 2b 20 32  |#Parent MSG_.+ 2|
00017de0  30 09 72 65 73 65 72 76  65 64 0a 2b 20 32 34 09  |0.reserved.+ 24.|
00017df0  3c 4a 6f 62 20 68 61 6e  64 6c 65 3d 3e 4d 73 67  |<Job handle=>Msg|
00017e00  5f 45 78 74 45 64 69 74  4a 6f 62 48 61 6e 64 6c  |_ExtEditJobHandl|
00017e10  65 3e 0a 2b 20 32 38 09  3c 46 6c 61 67 20 77 6f  |e>.+ 28.<Flag wo|
00017e20  72 64 3d 3e 4d 73 67 5f  45 78 74 45 64 69 74 46  |rd=>Msg_ExtEditF|
00017e30  6c 61 67 73 3e 0a 2b 20  33 32 09 4e 65 77 20 63  |lags>.+ 32.New c|
00017e40  75 72 73 6f 72 20 70 6f  73 69 74 69 6f 6e 2a 0a  |ursor position*.|
00017e50  2b 20 33 36 09 4e 65 77  20 73 74 61 72 74 20 6f  |+ 36.New start o|
00017e60  66 20 73 65 6c 65 63 74  69 6f 6e 2a 0a 2b 20 34  |f selection*.+ 4|
00017e70  30 09 4e 65 77 20 65 6e  64 20 6f 66 20 73 65 6c  |0.New end of sel|
00017e80  65 63 74 69 6f 6e 2a 0a  2b 20 34 34 09 4f 6c 64  |ection*.+ 44.Old|
00017e90  20 63 75 72 73 6f 72 2a  20 28 72 65 70 6c 79 20  | cursor* (reply |
00017ea0  6f 6e 6c 79 29 0a 2b 20  34 38 09 4f 6c 64 20 73  |only).+ 48.Old s|
00017eb0  74 61 72 74 20 6f 66 20  73 65 6c 65 63 74 69 6f  |tart of selectio|
00017ec0  6e 2a 20 28 72 65 70 6c  79 20 6f 6e 6c 79 29 0a  |n* (reply only).|
00017ed0  2b 20 35 32 09 4f 6c 64  20 65 6e 64 20 6f 66 20  |+ 52.Old end of |
00017ee0  73 65 6c 65 63 74 69 6f  6e 2a 20 28 72 65 70 6c  |selection* (repl|
00017ef0  79 20 6f 6e 6c 79 29 0a  0a 54 68 69 73 20 6d 65  |y only)..This me|
00017f00  73 73 61 67 65 20 69 73  20 73 65 6e 74 20 62 79  |ssage is sent by|
00017f10  20 61 20 63 6c 69 65 6e  74 20 77 68 6f 20 77 69  | a client who wi|
00017f20  73 68 65 73 20 74 68 65  20 65 64 69 74 6f 72 20  |shes the editor |
00017f30  74 6f 20 70 6f 73 69 74  69 6f 6e 20 69 74 73 20  |to position its |
00017f40  63 75 72 73 6f 72 20 65  78 61 63 74 6c 79 2e 20  |cursor exactly. |
00017f50  54 68 65 20 72 65 70 6c  79 20 69 73 20 74 68 65  |The reply is the|
00017f60  6e 20 72 74 75 72 6e 65  64 20 62 79 20 74 68 65  |n rturned by the|
00017f70  20 65 64 69 74 6f 72 20  74 6f 20 69 6e 64 69 63  | editor to indic|
00017f80  61 74 65 20 74 68 65 20  6f 6c 64 20 63 75 72 73  |ate the old curs|
00017f90  6f 72 2c 20 73 74 61 72  74 20 61 6e 64 20 65 6e  |or, start and en|
00017fa0  64 20 70 6f 73 69 74 69  6f 6e 73 2e 0a 0a 41 6c  |d positions...Al|
00017fb0  6c 20 64 61 74 61 20 68  61 73 20 70 6f 73 69 74  |l data has posit|
00017fc0  69 6f 6e 73 20 73 74 61  72 74 69 6e 67 20 77 69  |ions starting wi|
00017fd0  74 68 20 74 68 65 20 66  69 72 73 74 20 75 6e 69  |th the first uni|
00017fe0  74 20 61 73 20 31 2c 20  74 68 65 20 6e 65 78 74  |t as 1, the next|
00017ff0  20 61 73 20 32 20 61 6e  64 20 73 6f 20 6f 6e 2e  | as 2 and so on.|
00018000  20 54 6f 20 70 6f 73 69  74 69 6f 6e 20 61 20 70  | To position a p|
00018010  6f 69 6e 74 65 72 20 62  65 66 6f 72 65 20 74 68  |ointer before th|
00018020  65 20 73 74 61 72 74 20  6f 66 20 74 68 65 20 64  |e start of the d|
00018030  61 74 61 20 75 73 65 20  30 2c 20 61 6e 64 20 61  |ata use 0, and a|
00018040  66 74 65 72 20 74 68 65  20 65 6e 64 20 75 73 65  |fter the end use|
00018050  20 2d 32 2e 0a 0a 7b 66  48 34 7d 53 70 65 63 69  | -2...{fH4}Speci|
00018060  61 6c 20 63 75 72 73 6f  72 20 6d 65 61 6e 69 6e  |al cursor meanin|
00018070  67 73 7b 66 7d 0a 54 6f  20 6c 65 61 76 65 20 61  |gs{f}.To leave a|
00018080  20 66 69 65 6c 64 20 75  6e 63 68 61 6e 67 65 64  | field unchanged|
00018090  20 69 74 20 73 68 6f 75  6c 64 20 75 73 65 20 2d  | it should use -|
000180a0  31 2c 20 74 68 65 72 65  66 6f 72 65 20 74 68 72  |1, therefore thr|
000180b0  65 65 20 2d 31 27 73 20  77 69 6c 6c 20 72 65 61  |ee -1's will rea|
000180c0  64 20 74 68 65 20 63 75  72 72 65 6e 74 20 70 6f  |d the current po|
000180d0  73 69 74 69 6f 6e 20 6f  66 20 74 68 65 20 63 75  |sition of the cu|
000180e0  72 73 6f 72 2e 20 49 66  20 74 68 65 72 65 20 69  |rsor. If there i|
000180f0  73 20 6e 6f 20 63 6f 6e  63 65 70 74 20 6f 66 20  |s no concept of |
00018100  63 75 72 73 6f 72 20 6f  72 20 73 65 6c 65 63 74  |cursor or select|
00018110  69 6f 6e 20 74 68 65 6e  20 74 68 65 20 61 70 70  |ion then the app|
00018120  72 6f 70 72 69 61 74 65  20 66 69 65 6c 64 73 20  |ropriate fields |
00018130  6d 75 73 74 20 62 65 20  73 65 74 20 74 6f 20 2d  |must be set to -|
00018140  31 20 62 79 20 74 68 65  20 65 64 69 74 6f 72 2e  |1 by the editor.|
00018150  20 54 68 65 20 65 64 69  74 6f 72 20 73 68 6f 75  | The editor shou|
00018160  6c 64 20 6e 65 76 65 72  20 72 65 74 75 72 6e 20  |ld never return |
00018170  2d 32 20 61 73 20 61 20  70 6f 73 69 74 69 6f 6e  |-2 as a position|
00018180  2e 0a 0a 55 6e 69 74 20  6d 65 61 6e 69 6e 67 73  |...Unit meanings|
00018190  20 61 72 65 20 64 69 66  66 65 72 65 6e 74 20 64  | are different d|
000181a0  65 70 65 6e 64 69 6e 67  20 6f 6e 20 74 68 65 20  |epending on the |
000181b0  66 69 6c 65 74 79 70 65  2c 20 63 6c 69 63 6b 20  |filetype, click |
000181c0  3c 68 65 72 65 3d 3e 4d  73 67 5f 45 78 74 45 64  |<here=>Msg_ExtEd|
000181d0  69 74 43 75 72 73 6f 72  55 6e 69 74 73 3e 20 66  |itCursorUnits> f|
000181e0  6f 72 20 64 65 74 61 69  6c 73 2e 0a 44 49 52 24  |or details..DIR$|
000181f0  2c 00 00 00 2c 00 00 00  18 82 01 00 46 fd ff ff  |,...,.......F...|
00018200  11 4a c7 13 c6 00 00 00  13 00 00 00 00 00 00 00  |.J..............|
00018210  21 52 6f 6f 74 00 00 00  44 41 54 41 c6 00 00 00  |!Root...DATA....|
00018220  43 6f 6c 6f 75 72 50 69  63 6b 65 72 0a 23 50 61  |ColourPicker.#Pa|
00018230  72 65 6e 74 20 21 52 6f  6f 74 0a 23 50 72 65 66  |rent !Root.#Pref|
00018240  69 78 20 43 6f 6c 6f 75  72 50 69 63 6b 65 72 5f  |ix ColourPicker_|
00018250  0a 23 54 61 62 6c 65 20  43 6f 6c 75 6d 6e 73 20  |.#Table Columns |
00018260  32 0a 52 65 67 69 73 74  65 72 4d 6f 64 65 6c 0a  |2.RegisterModel.|
00018270  44 65 72 65 67 69 73 74  65 72 4d 6f 64 65 6c 0a  |DeregisterModel.|
00018280  4f 70 65 6e 44 69 61 6c  6f 67 75 65 0a 43 6c 6f  |OpenDialogue.Clo|
00018290  73 65 44 69 61 6c 6f 67  75 65 0a 55 70 64 61 74  |seDialogue.Updat|
000182a0  65 44 69 61 6c 6f 67 75  65 0a 52 65 61 64 44 69  |eDialogue.ReadDi|
000182b0  61 6c 6f 67 75 65 0a 53  65 74 43 6f 6c 6f 75 72  |alogue.SetColour|
000182c0  0a 48 65 6c 70 52 65 70  6c 79 0a 4d 6f 64 65 6c  |.HelpReply.Model|
000182d0  53 57 49 0a 23 45 6e 64  54 61 62 6c 65 0a 00 00  |SWI.#EndTable...|
000182e0  44 49 52 24 ac 00 00 00  ac 00 00 00 8c 83 01 00  |DIR$............|
000182f0  46 fd ff ff 86 52 31 0e  45 00 00 00 13 00 00 00  |F....R1.E.......|
00018300  00 00 00 00 21 52 6f 6f  74 00 00 00 d4 83 01 00  |....!Root.......|
00018310  48 ff ff ff a0 1b 6b 27  ef 01 00 00 13 00 00 00  |H.....k'........|
00018320  00 00 00 00 53 74 61 72  74 00 00 00 c4 85 01 00  |....Start.......|
00018330  48 fd ff ff 41 35 bf 27  0c 02 00 00 13 00 00 00  |H...A5.'........|
00018340  00 00 00 00 6c 6f 63 66  6c 61 67 73 00 00 00 00  |....locflags....|
00018350  d0 87 01 00 46 fd ff ff  cf 4d d2 24 60 00 00 00  |....F....M.$`...|
00018360  13 00 00 00 00 00 00 00  62 6f 78 00 30 88 01 00  |........box.0...|
00018370  48 ff ff ff 28 f6 6a 27  2a 01 00 00 13 00 00 00  |H...(.j'*.......|
00018380  00 00 00 00 53 74 6f 70  00 00 00 00 44 41 54 41  |....Stop....DATA|
00018390  45 00 00 00 44 72 61 67  41 53 70 72 69 74 65 0a  |E...DragASprite.|
000183a0  23 50 61 72 65 6e 74 20  21 52 6f 6f 74 0a 23 50  |#Parent !Root.#P|
000183b0  72 65 66 69 78 20 44 72  61 67 41 53 70 72 69 74  |refix DragASprit|
000183c0  65 5f 0a 3c 53 74 61 72  74 3e 0a 3c 53 74 6f 70  |e_.<Start>.<Stop|
000183d0  3e 00 00 00 44 41 54 41  ef 01 00 00 44 72 61 67  |>...DATA....Drag|
000183e0  41 53 70 72 69 74 65 5f  53 74 61 72 74 20 20 28  |ASprite_Start  (|
000183f0  26 34 32 34 30 30 29 0a  23 50 61 72 65 6e 74 20  |&42400).#Parent |
00018400  44 72 61 67 41 53 70 72  69 74 65 5f 0a 3d 3e 09  |DragASprite_.=>.|
00018410  52 30 20 3d 09 4c 6f 63  61 74 69 6f 6e 20 3c 66  |R0 =.Location <f|
00018420  6c 61 67 73 3d 3e 44 72  61 67 41 53 70 72 69 74  |lags=>DragASprit|
00018430  65 5f 6c 6f 63 66 6c 61  67 73 3e 0a 09 52 31 20  |e_locflags>..R1 |
00018440  3d 09 3c 53 70 72 69 74  65 20 61 72 65 61 3d 3e  |=.<Sprite area=>|
00018450  4f 53 3a 4f 53 5f 53 70  72 69 74 65 4f 70 5f 41  |OS:OS_SpriteOp_A|
00018460  72 65 61 3e 20 28 30 20  66 6f 72 20 73 79 73 74  |rea> (0 for syst|
00018470  65 6d 2c 20 31 20 66 6f  72 20 57 69 6d 70 2c 20  |em, 1 for Wimp, |
00018480  6f 74 68 65 72 77 69 73  65 20 61 6e 20 61 64 64  |otherwise an add|
00018490  72 65 73 73 29 0a 09 52  32 20 3d 09 50 6f 69 6e  |ress)..R2 =.Poin|
000184a0  74 65 72 20 74 6f 20 73  70 72 69 74 65 20 6e 61  |ter to sprite na|
000184b0  6d 65 0a 09 52 33 20 3d  09 50 6f 69 6e 74 65 72  |me..R3 =.Pointer|
000184c0  20 74 6f 20 31 36 2d 62  79 74 65 20 62 6c 6f 63  | to 16-byte bloc|
000184d0  6b 20 63 6f 6e 74 61 69  6e 69 6e 67 20 3c 64 72  |k containing <dr|
000184e0  61 67 20 62 6f 78 3d 3e  44 72 61 67 41 53 70 72  |ag box=>DragASpr|
000184f0  69 74 65 5f 62 6f 78 3e  0a 09 52 34 20 3d 09 50  |ite_box>..R4 =.P|
00018500  6f 69 6e 74 65 72 20 74  6f 20 6f 70 74 69 6f 6e  |ointer to option|
00018510  61 6c 20 62 6c 6f 63 6b  20 63 6f 6e 74 61 69 6e  |al block contain|
00018520  69 6e 67 20 3c 62 6f 75  6e 64 69 6e 67 20 62 6f  |ing <bounding bo|
00018530  78 3d 3e 44 72 61 67 41  53 70 72 69 74 65 5f 62  |x=>DragASprite_b|
00018540  6f 78 3e 0a 0a 54 68 69  73 20 53 57 49 20 73 74  |ox>..This SWI st|
00018550  61 72 74 73 20 64 72 61  67 67 69 6e 67 20 61 20  |arts dragging a |
00018560  73 70 72 69 74 65 2e 20  54 68 65 20 73 70 72 69  |sprite. The spri|
00018570  74 65 20 79 6f 75 20 73  75 70 70 6c 79 20 69 73  |te you supply is|
00018580  20 63 6f 70 69 65 64 2c  20 73 6f 20 79 6f 75 20  | copied, so you |
00018590  63 61 6e 20 64 69 73 70  6f 73 65 20 6f 66 20 79  |can dispose of y|
000185a0  6f 75 72 20 63 6f 70 79  20 6f 66 20 74 68 65 20  |our copy of the |
000185b0  73 70 72 69 74 65 20 69  66 20 6e 65 65 64 20 62  |sprite if need b|
000185c0  65 2e 0a 00 44 41 54 41  0c 02 00 00 44 72 61 67  |e...DATA....Drag|
000185d0  20 6c 6f 63 61 74 69 6f  6e 20 66 6c 61 67 73 0a  | location flags.|
000185e0  42 69 74 73 09 4d 65 61  6e 69 6e 67 0a 23 4c 69  |Bits.Meaning.#Li|
000185f0  6e 65 0a 30 2d 31 09 48  6f 72 69 7a 6f 6e 74 61  |ne.0-1.Horizonta|
00018600  6c 20 6c 6f 63 61 74 69  6f 6e 20 6f 66 20 73 70  |l location of sp|
00018610  72 69 74 65 20 69 6e 20  62 6f 78 3a 0a 09 20 30  |rite in box:.. 0|
00018620  30 09 4c 65 66 74 0a 09  20 30 31 09 43 65 6e 74  |0.Left.. 01.Cent|
00018630  72 65 0a 09 20 31 30 09  52 69 67 68 74 0a 09 20  |re.. 10.Right.. |
00018640  31 31 09 75 6e 64 65 66  69 6e 65 64 0a 32 2d 33  |11.undefined.2-3|
00018650  09 56 65 72 74 69 63 61  6c 20 6c 6f 63 61 74 69  |.Vertical locati|
00018660  6f 6e 20 6f 66 20 73 70  72 69 74 65 20 69 6e 20  |on of sprite in |
00018670  62 6f 78 3a 0a 09 20 30  30 09 42 6f 74 74 6f 6d  |box:.. 00.Bottom|
00018680  0a 09 20 30 31 09 43 65  6e 74 72 65 0a 09 20 31  |.. 01.Centre.. 1|
00018690  30 09 54 6f 70 0a 09 20  31 31 09 75 6e 64 65 66  |0.Top.. 11.undef|
000186a0  69 6e 65 64 0a 34 2d 35  09 44 72 61 67 20 62 6f  |ined.4-5.Drag bo|
000186b0  75 6e 64 69 6e 67 20 62  6f 78 20 69 73 3a 0a 09  |unding box is:..|
000186c0  20 30 30 09 57 68 6f 6c  65 20 73 63 72 65 65 6e  | 00.Whole screen|
000186d0  0a 09 20 30 31 09 44 69  73 70 6c 61 79 20 61 72  |.. 01.Display ar|
000186e0  65 61 20 6f 66 20 77 69  6e 64 6f 77 20 74 68 61  |ea of window tha|
000186f0  74 20 74 68 65 20 70 6f  69 6e 74 65 72 20 69 73  |t the pointer is|
00018700  20 6f 76 65 72 0a 09 20  31 30 09 55 73 65 72 20  | over.. 10.User |
00018710  73 70 65 63 69 66 69 65  64 0a 09 20 31 31 09 75  |specified.. 11.u|
00018720  6e 64 65 66 69 6e 65 64  0a 36 09 42 6f 75 6e 64  |ndefined.6.Bound|
00018730  69 6e 67 20 62 6f 78 20  61 70 70 6c 69 65 73 20  |ing box applies |
00018740  74 6f 3a 0a 09 20 30 09  54 68 65 20 62 6f 78 0a  |to:.. 0.The box.|
00018750  09 20 31 09 54 68 65 20  70 6f 69 6e 74 65 72 0a  |. 1.The pointer.|
00018760  37 09 55 73 65 20 64 72  6f 70 20 73 68 61 64 6f  |7.Use drop shado|
00018770  77 0a 38 09 44 6f 6e 27  74 20 64 69 74 68 65 72  |w.8.Don't dither|
00018780  20 73 70 72 69 74 65 20  28 52 49 53 43 20 4f 53  | sprite (RISC OS|
00018790  20 33 2e 35 20 6f 6e 77  61 72 64 73 29 0a 39 2d  | 3.5 onwards).9-|
000187a0  33 31 09 52 65 73 65 72  76 65 64 20 66 6f 72 20  |31.Reserved for |
000187b0  66 75 74 75 72 65 20 75  73 65 2c 20 73 68 6f 75  |future use, shou|
000187c0  6c 64 20 62 65 20 73 65  74 20 74 6f 20 30 2e 0a  |ld be set to 0..|
000187d0  44 41 54 41 60 00 00 00  42 6f 78 20 62 6c 6f 63  |DATA`...Box bloc|
000187e0  6b 0a 4f 66 66 73 65 74  09 55 73 65 0a 23 4c 69  |k.Offset.Use.#Li|
000187f0  6e 65 0a 23 57 72 61 70  20 4f 66 66 0a 30 09 78  |ne.#Wrap Off.0.x|
00018800  30 20 28 6c 65 66 74 29  0a 34 09 79 30 20 28 62  |0 (left).4.y0 (b|
00018810  6f 74 74 6f 6d 29 0a 38  09 78 31 20 28 72 69 67  |ottom).8.x1 (rig|
00018820  68 74 29 0a 31 32 09 79  31 20 28 74 6f 70 29 0a  |ht).12.y1 (top).|
00018830  44 41 54 41 2a 01 00 00  44 72 61 67 41 53 70 72  |DATA*...DragASpr|
00018840  69 74 65 5f 53 74 6f 70  20 20 28 26 34 32 34 30  |ite_Stop  (&4240|
00018850  31 29 0a 23 50 61 72 65  6e 74 20 44 72 61 67 41  |1).#Parent DragA|
00018860  53 70 72 69 74 65 5f 0a  4e 6f 20 70 61 72 61 6d  |Sprite_.No param|
00018870  73 0a 0a 54 68 69 73 20  53 57 49 20 74 65 72 6d  |s..This SWI term|
00018880  69 6e 61 74 65 73 20 61  6e 79 20 63 75 72 72 65  |inates any curre|
00018890  6e 74 20 64 72 61 67 20  6f 70 65 72 61 74 69 6f  |nt drag operatio|
000188a0  6e 20 61 6e 64 20 72 65  6c 65 61 73 65 73 20 61  |n and releases a|
000188b0  6e 79 20 64 72 61 67 2d  61 2d 73 70 72 69 74 65  |ny drag-a-sprite|
000188c0  20 77 6f 72 6b 73 70 61  63 65 20 63 6c 61 69 6d  | workspace claim|
000188d0  65 64 20 74 6f 20 64 6f  20 61 20 64 72 61 67 2e  |ed to do a drag.|
000188e0  20 49 74 20 69 73 20 65  78 70 65 63 74 65 64 20  | It is expected |
000188f0  74 68 61 74 20 74 68 69  73 20 53 57 49 20 77 69  |that this SWI wi|
00018900  6c 6c 20 62 65 20 63 61  6c 6c 65 64 20 77 68 65  |ll be called whe|
00018910  6e 20 74 68 65 20 3c 55  73 65 72 20 44 72 61 67  |n the <User Drag|
00018920  62 20 42 6f 78 3d 3e 57  69 6d 70 5f 50 6f 6c 6c  |b Box=>Wimp_Poll|
00018930  37 3e 20 72 65 61 73 6f  6e 20 69 73 20 72 65 63  |7> reason is rec|
00018940  65 69 76 65 64 20 62 79  20 74 68 65 20 61 70 70  |eived by the app|
00018950  6c 69 63 61 74 69 6f 6e  2e 0a 00 00 44 49 52 24  |lication....DIR$|
00018960  f4 00 00 00 f4 00 00 00  50 8a 01 00 47 fd ff ff  |........P...G...|
00018970  3b d2 1b 82 b9 00 00 00  13 00 00 00 00 00 00 00  |;...............|
00018980  21 52 6f 6f 74 00 00 00  0c 8b 01 00 48 fd ff ff  |!Root.......H...|
00018990  ab b2 06 28 17 03 00 00  13 00 00 00 00 00 00 00  |...(............|
000189a0  65 78 61 6d 70 6c 65 00  24 8e 01 00 48 ff ff ff  |example.$...H...|
000189b0  08 63 d9 26 27 01 00 00  13 00 00 00 00 00 00 00  |.c.&'...........|
000189c0  53 65 6e 64 53 65 6c 65  63 74 65 64 44 69 72 65  |SendSelectedDire|
000189d0  63 74 6f 72 79 00 00 00  4c 8f 01 00 48 ff ff ff  |ctory...L...H...|
000189e0  eb 66 d9 26 2e 02 00 00  13 00 00 00 00 00 00 00  |.f.&............|
000189f0  53 65 6e 64 53 65 6c 65  63 74 65 64 46 69 6c 65  |SendSelectedFile|
00018a00  00 00 00 00 7c 91 01 00  48 ff ff ff a8 e3 08 28  |....|...H......(|
00018a10  f9 0b 00 00 13 00 00 00  00 00 00 00 53 65 6e 64  |............Send|
00018a20  53 74 61 72 74 4f 70 65  72 61 74 69 6f 6e 00 00  |StartOperation..|
00018a30  78 9d 01 00 48 fd ff ff  b6 3d db 26 9c 00 00 00  |x...H....=.&....|
00018a40  13 00 00 00 00 00 00 00  6f 70 74 69 6f 6e 73 00  |........options.|
00018a50  44 41 54 41 b9 00 00 00  46 69 6c 65 72 41 63 74  |DATA....FilerAct|
00018a60  69 6f 6e 0a 23 50 61 72  65 6e 74 20 21 52 6f 6f  |ion.#Parent !Roo|
00018a70  74 0a 23 50 72 65 66 69  78 20 46 69 6c 65 72 41  |t.#Prefix FilerA|
00018a80  63 74 69 6f 6e 5f 0a 23  54 61 62 6c 65 20 43 6f  |ction_.#Table Co|
00018a90  6c 75 6d 6e 73 20 32 0a  3c 53 65 6e 64 53 65 6c  |lumns 2.<SendSel|
00018aa0  65 63 74 65 64 44 69 72  65 63 74 6f 72 79 3e 0a  |ectedDirectory>.|
00018ab0  3c 53 65 6e 64 53 65 6c  65 63 74 65 64 46 69 6c  |<SendSelectedFil|
00018ac0  65 3e 0a 3c 53 65 6e 64  53 74 61 72 74 4f 70 65  |e>.<SendStartOpe|
00018ad0  72 61 74 69 6f 6e 3e 0a  23 45 6e 64 54 61 62 6c  |ration>.#EndTabl|
00018ae0  65 0a 0a 3c 45 78 61 6d  70 6c 65 20 6f 66 20 75  |e..<Example of u|
00018af0  73 65 3d 3e 46 69 6c 65  72 41 63 74 69 6f 6e 5f  |se=>FilerAction_|
00018b00  45 78 61 6d 70 6c 65 3e  0a 00 00 00 44 41 54 41  |Example>....DATA|
00018b10  17 03 00 00 45 78 61 6d  70 6c 65 20 6f 66 20 75  |....Example of u|
00018b20  73 69 6e 67 20 46 69 6c  65 72 5f 41 63 74 69 6f  |sing Filer_Actio|
00018b30  6e 0a 23 50 61 72 65 6e  74 20 46 69 6c 65 72 5f  |n.#Parent Filer_|
00018b40  0a 48 65 72 65 20 69 73  20 61 20 42 41 53 49 43  |.Here is a BASIC|
00018b50  20 65 78 61 6d 70 6c 65  20 6f 66 20 68 6f 77 20  | example of how |
00018b60  74 6f 20 75 73 65 20 74  68 65 20 46 69 6c 65 72  |to use the Filer|
00018b70  5f 41 63 74 69 6f 6e 20  6d 6f 64 75 6c 65 20 74  |_Action module t|
00018b80  6f 20 43 6f 70 79 20 66  69 6c 65 73 20 77 69 74  |o Copy files wit|
00018b90  68 20 56 65 72 62 6f 73  65 20 6f 6e 20 76 69 61  |h Verbose on via|
00018ba0  20 74 68 65 20 6d 75 6c  74 69 74 61 73 6b 69 6e  | the multitaskin|
00018bb0  67 20 46 69 6c 65 72 20  41 63 74 69 6f 6e 20 57  |g Filer Action W|
00018bc0  69 6e 64 6f 77 2e 0a 0a  7b 66 63 6f 64 65 7d 53  |indow...{fcode}S|
00018bd0  59 53 20 22 3c 57 69 6d  70 5f 53 74 61 72 74 54  |YS "<Wimp_StartT|
00018be0  61 73 6b 3e 22 2c 22 46  69 6c 65 72 5f 41 63 74  |ask>","Filer_Act|
00018bf0  69 6f 6e 22 20 54 4f 20  74 61 73 6b 68 61 6e 64  |ion" TO taskhand|
00018c00  6c 65 25 0a 53 59 53 20  22 3c 46 69 6c 65 72 41  |le%.SYS "<FilerA|
00018c10  63 74 69 6f 6e 5f 53 65  6e 64 53 65 6c 65 63 74  |ction_SendSelect|
00018c20  65 64 44 69 72 65 63 74  6f 72 79 3e 22 2c 74 61  |edDirectory>",ta|
00018c30  73 6b 68 61 6e 64 6c 65  25 2c 73 6f 75 72 63 65  |skhandle%,source|
00018c40  64 69 72 65 63 74 6f 72  79 70 61 74 68 6e 61 6d  |directorypathnam|
00018c50  65 24 0a 53 59 53 20 22  3c 46 69 6c 65 72 41 63  |e$.SYS "<FilerAc|
00018c60  74 69 6f 6e 5f 53 65 6e  64 53 65 6c 65 63 74 65  |tion_SendSelecte|
00018c70  64 46 69 6c 65 3e 22 2c  74 61 73 6b 68 61 6e 64  |dFile>",taskhand|
00018c80  6c 65 25 2c 73 6f 75 72  63 65 66 69 6c 65 73 6c  |le%,sourcefilesl|
00018c90  65 61 66 6e 61 6d 65 73  24 0a 53 59 53 a0 22 3c  |eafnames$.SYS."<|
00018ca0  46 69 6c 65 72 41 63 74  69 6f 6e 5f 53 65 6e 64  |FilerAction_Send|
00018cb0  53 74 61 72 74 4f 70 65  72 61 74 69 6f 6e 3e 22  |StartOperation>"|
00018cc0  2c 74 61 73 6b 68 61 6e  64 6c 65 25 2c 30 2c 31  |,taskhandle%,0,1|
00018cd0  2c 74 61 72 67 65 74 64  69 72 65 63 74 6f 72 79  |,targetdirectory|
00018ce0  70 61 74 68 6e 61 6d 65  24 2b 43 48 52 24 30 2c  |pathname$+CHR$0,|
00018cf0  4c 45 4e 28 74 61 72 67  65 74 64 69 72 65 63 74  |LEN(targetdirect|
00018d00  6f 72 79 70 61 74 68 6e  61 6d 65 24 29 2b 31 0a  |orypathname$)+1.|
00018d10  7b 66 7d 0a 0a 4e 6f 74  65 3a 0a 54 68 65 20 65  |{f}..Note:.The e|
00018d20  78 61 63 74 20 70 61 74  68 6e 61 6d 65 20 6f 66  |xact pathname of|
00018d30  20 27 73 6f 75 72 63 65  2f 74 61 72 67 65 74 64  | 'source/targetd|
00018d40  69 72 65 63 74 6f 72 79  70 61 74 68 6e 61 6d 65  |irectorypathname|
00018d50  24 27 20 77 69 6c 6c 20  61 70 70 65 61 72 20 69  |$' will appear i|
00018d60  6e 20 74 68 65 20 46 69  6c 65 72 20 41 63 74 69  |n the Filer Acti|
00018d70  6f 6e 20 77 69 6e 64 6f  77 2c 20 73 6f 20 69 66  |on window, so if|
00018d80  20 79 6f 75 20 75 73 65  20 61 20 73 79 73 74 65  | you use a syste|
00018d90  6d 20 76 61 72 69 61 62  6c 65 20 69 6e 20 74 68  |m variable in th|
00018da0  69 73 20 74 68 65 6e 20  69 74 20 6c 6f 6f 6b 73  |is then it looks|
00018db0  20 75 6e 74 69 64 79 20  61 6e 64 20 74 68 65 20  | untidy and the |
00018dc0  75 73 65 72 20 77 69 6c  6c 20 6e 6f 74 20 62 65  |user will not be|
00018dd0  20 73 68 6f 77 6e 20 74  68 65 20 74 72 75 65 20  | shown the true |
00018de0  70 61 74 68 20 62 65 69  6e 67 20 75 73 65 64 2e  |path being used.|
00018df0  0a 0a 8f 09 52 65 6d 65  6d 62 65 72 20 74 68 61  |....Remember tha|
00018e00  74 20 74 68 69 73 20 69  73 20 52 49 53 43 20 4f  |t this is RISC O|
00018e10  53 20 33 20 6f 72 20 61  62 6f 76 65 20 6f 6e 6c  |S 3 or above onl|
00018e20  79 2e 0a 00 44 41 54 41  27 01 00 00 46 69 6c 65  |y...DATA'...File|
00018e30  72 41 63 74 69 6f 6e 5f  53 65 6e 64 53 65 6c 65  |rAction_SendSele|
00018e40  63 74 65 64 44 69 72 65  63 74 6f 72 79 20 20 28  |ctedDirectory  (|
00018e50  26 34 30 46 38 30 29 0a  23 50 61 72 65 6e 74 20  |&40F80).#Parent |
00018e60  46 69 6c 65 72 41 63 74  69 6f 6e 5f 0a 3d 3e 09  |FilerAction_.=>.|
00018e70  52 30 20 3d 09 68 61 6e  64 6c 65 20 6f 66 20 74  |R0 =.handle of t|
00018e80  68 65 20 74 61 73 6b 20  46 69 6c 65 72 5f 41 63  |he task Filer_Ac|
00018e90  74 69 6f 6e 20 6a 75 73  74 20 73 74 61 72 74 65  |tion just starte|
00018ea0  64 2e 0a 09 52 31 20 3d  09 70 6f 69 6e 74 65 72  |d...R1 =.pointer|
00018eb0  20 74 6f 20 66 75 6c 6c  20 70 61 74 68 6e 61 6d  | to full pathnam|
00018ec0  65 20 6f 66 20 73 6f 75  72 63 65 20 64 69 72 65  |e of source dire|
00018ed0  63 74 6f 72 79 20 79 6f  75 20 77 69 73 68 20 74  |ctory you wish t|
00018ee0  6f 20 73 74 61 72 74 20  61 6e 20 61 63 74 69 6f  |o start an actio|
00018ef0  6e 20 6f 6e 2e 0a 0a 54  68 69 73 20 53 57 49 20  |n on...This SWI |
00018f00  73 65 6e 64 73 20 3c 4d  65 73 73 61 67 65 5f 46  |sends <Message_F|
00018f10  69 6c 65 72 53 65 6c 65  63 74 69 6f 6e 44 69 72  |ilerSelectionDir|
00018f20  65 63 74 6f 72 79 3d 3e  4d 53 47 5f 34 30 33 3e  |ectory=>MSG_403>|
00018f30  20 74 6f 20 74 68 65 20  46 69 6c 65 72 5f 41 63  | to the Filer_Ac|
00018f40  74 69 6f 6e 20 74 61 73  6b 2e 0a 00 44 41 54 41  |tion task...DATA|
00018f50  2e 02 00 00 46 69 6c 65  72 41 63 74 69 6f 6e 5f  |....FilerAction_|
00018f60  53 65 6e 64 53 65 6c 65  63 74 65 64 46 69 6c 65  |SendSelectedFile|
00018f70  20 20 28 26 34 30 46 38  31 29 0a 23 50 61 72 65  |  (&40F81).#Pare|
00018f80  6e 74 20 46 69 6c 65 72  41 63 74 69 6f 6e 5f 0a  |nt FilerAction_.|
00018f90  3d 3e 09 52 30 20 3d 09  68 61 6e 64 6c 65 20 6f  |=>.R0 =.handle o|
00018fa0  66 20 74 68 65 20 74 61  73 6b 20 46 69 6c 65 72  |f the task Filer|
00018fb0  5f 41 63 74 69 6f 6e 20  6a 75 73 74 20 73 74 61  |_Action just sta|
00018fc0  72 74 65 64 2e 0a 09 52  31 20 3d 09 70 6f 69 6e  |rted...R1 =.poin|
00018fd0  74 65 72 20 74 6f 20 6c  65 61 66 6e 61 6d 65 73  |ter to leafnames|
00018fe0  20 6f 66 20 66 69 6c 65  73 20 74 6f 20 62 65 20  | of files to be |
00018ff0  61 63 74 65 64 20 75 70  6f 6e 2e 0a 0a 45 61 63  |acted upon...Eac|
00019000  68 20 66 69 6c 65 6e 61  6d 65 20 68 61 73 20 74  |h filename has t|
00019010  6f 20 62 65 20 73 65 70  61 72 61 74 65 64 20 62  |o be separated b|
00019020  79 20 61 20 73 69 6e 67  6c 65 20 73 70 61 63 65  |y a single space|
00019030  20 2d 20 7b 2f 7d 65 2e  67 2e 7b 2f 7d 20 27 7b  | - {/}e.g.{/} '{|
00019040  66 43 6f 64 65 7d 46 69  6c 65 31 20 46 69 6c 65  |fCode}File1 File|
00019050  32 20 46 69 6c 65 33 7b  66 7d 27 2e 0a 0a 54 68  |2 File3{f}'...Th|
00019060  69 73 20 53 57 49 20 62  75 66 66 65 72 73 20 66  |is SWI buffers f|
00019070  69 6c 65 6e 61 6d 65 73  20 75 6e 74 69 6c 20 69  |ilenames until i|
00019080  74 20 66 69 6c 6c 73 20  61 20 6d 65 73 73 61 67  |t fills a messag|
00019090  65 20 62 6c 6f 63 6b 2c  20 61 74 20 77 68 69 63  |e block, at whic|
000190a0  68 20 70 6f 69 6e 74 20  69 74 20 73 65 6e 64 73  |h point it sends|
000190b0  20 74 68 65 6d 20 74 6f  20 74 68 65 20 46 69 6c  | them to the Fil|
000190c0  65 72 5f 41 63 74 69 6f  6e 20 74 61 73 6b 20 75  |er_Action task u|
000190d0  73 69 6e 67 20 3c 4d 65  73 73 61 67 65 5f 46 69  |sing <Message_Fi|
000190e0  6c 65 72 41 64 64 53 65  6c 65 63 74 69 6f 6e 3d  |lerAddSelection=|
000190f0  3e 4d 53 47 5f 34 30 34  3e 2e 0a 0a 54 6f 20 73  |>MSG_404>...To s|
00019100  74 61 72 74 20 74 68 65  20 6f 70 65 72 61 74 69  |tart the operati|
00019110  6f 6e 20 73 65 65 20 3c  46 69 6c 65 72 41 63 74  |on see <FilerAct|
00019120  69 6f 6e 5f 53 65 6e 64  53 74 61 72 74 4f 70 65  |ion_SendStartOpe|
00019130  72 61 74 69 6f 6e 3e 20  28 77 68 69 63 68 20 77  |ration> (which w|
00019140  69 6c 6c 20 66 69 72 73  74 20 73 65 6e 64 20 61  |ill first send a|
00019150  6e 79 20 72 65 6d 61 69  6e 69 6e 67 20 62 75 66  |ny remaining buf|
00019160  66 65 72 65 64 20 6e 61  6d 65 73 20 74 6f 20 74  |fered names to t|
00019170  68 65 20 74 61 73 6b 29  2e 0a 00 00 44 41 54 41  |he task)....DATA|
00019180  f9 0b 00 00 46 69 6c 65  72 41 63 74 69 6f 6e 5f  |....FilerAction_|
00019190  53 65 6e 64 53 74 61 72  74 4f 70 65 72 61 74 69  |SendStartOperati|
000191a0  6f 6e 20 28 26 34 30 46  38 32 29 0a 23 50 61 72  |on (&40F82).#Par|
000191b0  65 6e 74 20 46 69 6c 65  72 41 63 74 69 6f 6e 5f  |ent FilerAction_|
000191c0  0a 3d 3e 09 52 30 20 3d  09 68 61 6e 64 6c 65 20  |.=>.R0 =.handle |
000191d0  6f 66 20 74 68 65 20 74  61 73 6b 20 46 69 6c 65  |of the task File|
000191e0  72 5f 41 63 74 69 6f 6e  20 6a 75 73 74 20 73 74  |r_Action just st|
000191f0  61 72 74 65 64 2e 0a 09  52 31 20 3d 09 72 65 61  |arted...R1 =.rea|
00019200  73 6f 6e 20 63 6f 64 65  3a 0a 09 20 09 20 20 30  |son code:.. .  0|
00019210  20 3c 43 6f 70 79 3d 3e  2e 30 3e 0a 09 20 09 20  | <Copy=>.0>.. . |
00019220  20 31 20 3c 4d 6f 76 65  20 28 72 65 6e 61 6d 65  | 1 <Move (rename|
00019230  29 3d 3e 2e 31 3e 0a 09  20 09 20 20 32 20 3c 44  |)=>.1>.. .  2 <D|
00019240  65 6c 65 74 65 3d 3e 2e  32 3e 0a 09 20 09 20 20  |elete=>.2>.. .  |
00019250  33 20 3c 53 65 74 20 61  63 63 65 73 73 3d 3e 2e  |3 <Set access=>.|
00019260  33 3e 0a 09 20 09 20 20  34 20 3c 53 65 74 20 74  |3>.. .  4 <Set t|
00019270  79 70 65 3d 3e 2e 34 3e  0a 09 20 09 20 20 35 20  |ype=>.4>.. .  5 |
00019280  3c 43 6f 75 6e 74 3d 3e  2e 35 3e 0a 09 20 09 20  |<Count=>.5>.. . |
00019290  20 36 20 3c 4d 6f 76 65  20 28 62 79 20 63 6f 70  | 6 <Move (by cop|
000192a0  79 69 6e 67 2f 64 65 6c  65 74 69 6e 67 29 3d 3e  |ying/deleting)=>|
000192b0  2e 36 3e 0a 09 20 09 20  20 37 20 3c 43 6f 70 79  |.6>.. .  7 <Copy|
000192c0  20 6c 6f 63 61 6c 20 28  77 69 74 68 69 6e 20 64  | local (within d|
000192d0  69 72 65 63 74 6f 72 79  29 3d 3e 2e 37 3e 0a 09  |irectory)=>.7>..|
000192e0  20 09 20 20 38 20 3c 53  74 61 6d 70 20 66 69 6c  | .  8 <Stamp fil|
000192f0  65 73 3d 3e 2e 38 3e 0a  09 20 09 20 20 39 20 3c  |es=>.8>.. .  9 <|
00019300  46 69 6e 64 20 66 69 6c  65 3d 3e 2e 39 3e 0a 23  |Find file=>.9>.#|
00019310  20 47 65 72 70 68 3e 20  59 65 73 2c 20 49 20 70  | Gerph> Yes, I p|
00019320  72 65 66 65 72 20 74 68  69 73 20 6c 61 79 6f 75  |refer this layou|
00019330  74 0a 09 52 32 20 3d 09  3c 6f 70 74 69 6f 6e 73  |t..R2 =.<options|
00019340  3d 3e 46 69 6c 65 72 41  63 74 69 6f 6e 5f 6f 70  |=>FilerAction_op|
00019350  74 69 6f 6e 73 3e 0a 09  52 33 20 3d 09 2a 70 6f  |tions>..R3 =.*po|
00019360  69 6e 74 65 72 2a 20 74  6f 20 72 65 61 73 6f 6e  |inter* to reason|
00019370  20 64 65 70 65 6e 64 65  6e 74 20 64 61 74 61 0a  | dependent data.|
00019380  09 52 34 20 3d 09 6c 65  6e 67 74 68 20 6f 66 20  |.R4 =.length of |
00019390  64 61 74 61 20 28 69 6e  63 6c 75 64 69 6e 67 20  |data (including |
000193a0  74 65 72 6d 69 6e 61 74  69 6e 67 20 22 5c 5c 30  |terminating "\\0|
000193b0  22 20 66 6f 72 20 73 74  72 69 6e 67 73 29 0a 0a  |" for strings)..|
000193c0  54 68 69 73 20 53 57 49  20 73 65 6e 64 73 20 61  |This SWI sends a|
000193d0  6e 79 20 72 65 6d 61 69  6e 69 6e 67 20 6c 65 61  |ny remaining lea|
000193e0  66 6e 61 6d 65 73 20 77  69 74 68 20 3c 4d 65 73  |fnames with <Mes|
000193f0  73 61 67 65 5f 46 69 6c  65 72 41 64 64 53 65 6c  |sage_FilerAddSel|
00019400  65 63 74 69 6f 6e 3d 3e  4d 53 47 5f 34 30 34 3e  |ection=>MSG_404>|
00019410  2c 20 74 68 65 6e 20 73  74 61 72 74 73 20 74 68  |, then starts th|
00019420  65 20 73 65 6c 65 63 74  65 64 20 6f 70 65 72 61  |e selected opera|
00019430  74 69 6f 6e 20 62 79 20  63 6f 6e 73 74 72 75 63  |tion by construc|
00019440  74 69 6e 67 20 61 6e 64  20 73 65 6e 64 69 6e 67  |ting and sending|
00019450  20 3c 4d 65 73 73 61 67  65 5f 46 69 6c 65 72 41  | <Message_FilerA|
00019460  63 74 69 6f 6e 3d 3e 4d  53 47 5f 34 30 35 3e 2e  |ction=>MSG_405>.|
00019470  20 52 65 61 73 6f 6e 20  64 65 70 65 6e 64 65 6e  | Reason dependen|
00019480  74 20 64 61 74 61 20 69  73 20 61 6c 77 61 79 73  |t data is always|
00019490  20 61 20 70 6f 69 6e 74  65 72 2c 20 65 76 65 6e  | a pointer, even|
000194a0  20 66 6f 72 20 77 6f 72  64 20 73 69 7a 65 64 20  | for word sized |
000194b0  64 61 74 61 2e 20 55 73  75 61 6c 6c 79 20 74 68  |data. Usually th|
000194c0  65 20 64 61 74 61 20 69  73 20 61 20 64 65 73 74  |e data is a dest|
000194d0  69 6e 61 74 69 6f 6e 20  70 61 74 68 6e 61 6d 65  |ination pathname|
000194e0  2e 0a 23 53 75 62 70 61  67 65 20 30 0a 46 69 6c  |..#Subpage 0.Fil|
000194f0  65 72 41 63 74 69 6f 6e  20 30 20 28 43 6f 70 79  |erAction 0 (Copy|
00019500  29 0a 3d 3e 09 52 30 20  3d 09 68 61 6e 64 6c 65  |).=>.R0 =.handle|
00019510  20 6f 66 20 74 68 65 20  74 61 73 6b 20 46 69 6c  | of the task Fil|
00019520  65 72 5f 41 63 74 69 6f  6e 20 6a 75 73 74 20 73  |er_Action just s|
00019530  74 61 72 74 65 64 2e 0a  09 52 31 20 3d 09 30 20  |tarted...R1 =.0 |
00019540  28 43 6f 70 79 29 0a 09  52 32 20 3d 09 3c 6f 70  |(Copy)..R2 =.<op|
00019550  74 69 6f 6e 73 3d 3e 46  69 6c 65 72 41 63 74 69  |tions=>FilerActi|
00019560  6f 6e 5f 6f 70 74 69 6f  6e 73 3e 0a 09 52 33 20  |on_options>..R3 |
00019570  3d 09 6e 75 6c 6c 20 74  65 72 6d 69 6e 61 74 65  |=.null terminate|
00019580  64 20 64 65 73 74 69 6e  61 74 69 6f 6e 20 64 69  |d destination di|
00019590  72 65 63 74 6f 72 79 0a  09 52 34 20 3d 09 6c 65  |rectory..R4 =.le|
000195a0  6e 67 74 68 20 28 69 6e  63 6c 75 64 69 6e 67 20  |ngth (including |
000195b0  74 65 72 6d 69 6e 61 74  69 6e 67 20 6e 75 6c 6c  |terminating null|
000195c0  29 0a 23 53 75 62 70 61  67 65 20 31 0a 46 69 6c  |).#Subpage 1.Fil|
000195d0  65 72 41 63 74 69 6f 6e  20 31 20 28 52 65 6e 61  |erAction 1 (Rena|
000195e0  6d 65 29 0a 3d 3e 09 52  30 20 3d 09 68 61 6e 64  |me).=>.R0 =.hand|
000195f0  6c 65 20 6f 66 20 74 68  65 20 74 61 73 6b 20 46  |le of the task F|
00019600  69 6c 65 72 5f 41 63 74  69 6f 6e 20 6a 75 73 74  |iler_Action just|
00019610  20 73 74 61 72 74 65 64  2e 0a 09 52 31 20 3d 09  | started...R1 =.|
00019620  31 20 28 52 65 6e 61 6d  65 29 0a 09 52 32 20 3d  |1 (Rename)..R2 =|
00019630  09 3c 6f 70 74 69 6f 6e  73 3d 3e 46 69 6c 65 72  |.<options=>Filer|
00019640  41 63 74 69 6f 6e 5f 6f  70 74 69 6f 6e 73 3e 0a  |Action_options>.|
00019650  09 52 33 20 3d 09 6e 75  6c 6c 20 74 65 72 6d 69  |.R3 =.null termi|
00019660  6e 61 74 65 64 20 64 65  73 74 69 6e 61 74 69 6f  |nated destinatio|
00019670  6e 20 64 69 72 65 63 74  6f 72 79 0a 09 52 34 20  |n directory..R4 |
00019680  3d 09 6c 65 6e 67 74 68  20 28 69 6e 63 6c 75 64  |=.length (includ|
00019690  69 6e 67 20 74 65 72 6d  69 6e 61 74 69 6e 67 20  |ing terminating |
000196a0  6e 75 6c 6c 29 0a 23 53  75 62 70 61 67 65 20 32  |null).#Subpage 2|
000196b0  0a 46 69 6c 65 72 41 63  74 69 6f 6e 20 32 20 28  |.FilerAction 2 (|
000196c0  44 65 6c 65 74 65 29 0a  3d 3e 09 52 30 20 3d 09  |Delete).=>.R0 =.|
000196d0  68 61 6e 64 6c 65 20 6f  66 20 74 68 65 20 74 61  |handle of the ta|
000196e0  73 6b 20 46 69 6c 65 72  5f 41 63 74 69 6f 6e 20  |sk Filer_Action |
000196f0  6a 75 73 74 20 73 74 61  72 74 65 64 2e 0a 09 52  |just started...R|
00019700  31 20 3d 09 32 20 28 44  65 6c 65 74 65 29 0a 09  |1 =.2 (Delete)..|
00019710  52 32 20 3d 09 3c 6f 70  74 69 6f 6e 73 3d 3e 46  |R2 =.<options=>F|
00019720  69 6c 65 72 41 63 74 69  6f 6e 5f 6f 70 74 69 6f  |ilerAction_optio|
00019730  6e 73 3e 0a 09 52 33 20  3d 09 75 6e 75 73 65 64  |ns>..R3 =.unused|
00019740  0a 09 52 34 20 3d 09 30  0a 23 53 75 62 70 61 67  |..R4 =.0.#Subpag|
00019750  65 20 33 0a 46 69 6c 65  72 41 63 74 69 6f 6e 20  |e 3.FilerAction |
00019760  33 20 28 53 65 74 20 61  63 63 65 73 73 29 0a 3d  |3 (Set access).=|
00019770  3e 09 52 30 20 3d 09 68  61 6e 64 6c 65 20 6f 66  |>.R0 =.handle of|
00019780  20 74 68 65 20 74 61 73  6b 20 46 69 6c 65 72 5f  | the task Filer_|
00019790  41 63 74 69 6f 6e 20 6a  75 73 74 20 73 74 61 72  |Action just star|
000197a0  74 65 64 2e 0a 09 52 31  20 3d 09 33 20 28 53 65  |ted...R1 =.3 (Se|
000197b0  74 20 61 63 63 65 73 73  29 0a 09 52 32 20 3d 09  |t access)..R2 =.|
000197c0  3c 6f 70 74 69 6f 6e 73  3d 3e 46 69 6c 65 72 41  |<options=>FilerA|
000197d0  63 74 69 6f 6e 5f 6f 70  74 69 6f 6e 73 3e 0a 09  |ction_options>..|
000197e0  52 33 20 3d 09 2a 70 6f  69 6e 74 65 72 2a 20 74  |R3 =.*pointer* t|
000197f0  6f 20 77 6f 72 64 20 67  69 76 69 6e 67 20 61 63  |o word giving ac|
00019800  63 65 73 73 0a 09 52 34  20 3d 09 34 0a 0a 54 68  |cess..R4 =.4..Th|
00019810  65 20 68 69 67 68 20 32  20 62 79 74 65 73 20 6f  |e high 2 bytes o|
00019820  66 20 74 68 65 20 77 6f  72 64 20 67 69 76 65 20  |f the word give |
00019830  74 68 65 20 6d 61 73 6b  2c 20 74 68 65 20 6c 6f  |the mask, the lo|
00019840  77 20 32 20 62 79 74 65  73 20 74 68 65 20 76 61  |w 2 bytes the va|
00019850  6c 75 65 2e 0a 0a 23 74  61 62 0a 4e 65 77 20 61  |lue...#tab.New a|
00019860  63 63 65 73 73 20 3d 09  28 4f 6c 64 a0 61 63 63  |ccess =.(Old.acc|
00019870  65 73 73 a0 7b 66 43 6f  64 65 7d 42 49 43 7b 66  |ess.{fCode}BIC{f|
00019880  7d a0 6d 61 73 6b 29 20  7b 66 43 6f 64 65 7d 4f  |}.mask) {fCode}O|
00019890  52 52 7b 66 7d 20 28 56  61 6c 75 65 a0 7b 66 43  |RR{f} (Value.{fC|
000198a0  6f 64 65 7d 41 4e 44 7b  66 7d a0 6d 61 73 6b 29  |ode}AND{f}.mask)|
000198b0  0a 23 53 75 62 70 61 67  65 20 34 0a 46 69 6c 65  |.#Subpage 4.File|
000198c0  72 41 63 74 69 6f 6e 20  34 20 28 53 65 74 20 74  |rAction 4 (Set t|
000198d0  79 70 65 29 0a 3d 3e 09  52 30 20 3d 09 68 61 6e  |ype).=>.R0 =.han|
000198e0  64 6c 65 20 6f 66 20 74  68 65 20 74 61 73 6b 20  |dle of the task |
000198f0  46 69 6c 65 72 5f 41 63  74 69 6f 6e 20 6a 75 73  |Filer_Action jus|
00019900  74 20 73 74 61 72 74 65  64 2e 0a 09 52 31 20 3d  |t started...R1 =|
00019910  09 34 20 28 53 65 74 20  74 79 70 65 29 0a 09 52  |.4 (Set type)..R|
00019920  32 20 3d 09 3c 6f 70 74  69 6f 6e 73 3d 3e 46 69  |2 =.<options=>Fi|
00019930  6c 65 72 41 63 74 69 6f  6e 5f 6f 70 74 69 6f 6e  |lerAction_option|
00019940  73 3e 0a 09 52 33 20 3d  09 2a 70 6f 69 6e 74 65  |s>..R3 =.*pointe|
00019950  72 2a 20 74 6f 20 77 6f  72 64 20 67 69 76 69 6e  |r* to word givin|
00019960  67 20 6e 75 6d 65 72 69  63 20 3c 66 69 6c 65 74  |g numeric <filet|
00019970  79 70 65 3d 3e 46 69 6c  65 74 79 70 65 73 3a 21  |ype=>Filetypes:!|
00019980  52 6f 6f 74 3e 0a 09 52  34 20 3d 09 34 0a 23 53  |Root>..R4 =.4.#S|
00019990  75 62 70 61 67 65 20 35  0a 46 69 6c 65 72 41 63  |ubpage 5.FilerAc|
000199a0  74 69 6f 6e 20 35 20 28  43 6f 75 6e 74 29 0a 3d  |tion 5 (Count).=|
000199b0  3e 09 52 30 20 3d 09 68  61 6e 64 6c 65 20 6f 66  |>.R0 =.handle of|
000199c0  20 74 68 65 20 74 61 73  6b 20 46 69 6c 65 72 5f  | the task Filer_|
000199d0  41 63 74 69 6f 6e 20 6a  75 73 74 20 73 74 61 72  |Action just star|
000199e0  74 65 64 2e 0a 09 52 31  20 3d 09 35 20 28 43 6f  |ted...R1 =.5 (Co|
000199f0  75 6e 74 29 0a 09 52 32  20 3d 09 3c 6f 70 74 69  |unt)..R2 =.<opti|
00019a00  6f 6e 73 3d 3e 46 69 6c  65 72 41 63 74 69 6f 6e  |ons=>FilerAction|
00019a10  5f 6f 70 74 69 6f 6e 73  3e 0a 09 52 33 20 3d 09  |_options>..R3 =.|
00019a20  75 6e 75 73 65 64 0a 09  52 34 20 3d 09 30 0a 23  |unused..R4 =.0.#|
00019a30  53 75 62 70 61 67 65 20  36 0a 46 69 6c 65 72 41  |Subpage 6.FilerA|
00019a40  63 74 69 6f 6e 20 36 20  28 4d 6f 76 65 29 0a 3d  |ction 6 (Move).=|
00019a50  3e 09 52 30 20 3d 09 68  61 6e 64 6c 65 20 6f 66  |>.R0 =.handle of|
00019a60  20 74 68 65 20 74 61 73  6b 20 46 69 6c 65 72 5f  | the task Filer_|
00019a70  41 63 74 69 6f 6e 20 6a  75 73 74 20 73 74 61 72  |Action just star|
00019a80  74 65 64 2e 0a 09 52 31  20 3d 09 36 20 28 4d 6f  |ted...R1 =.6 (Mo|
00019a90  76 65 29 0a 09 52 32 20  3d 09 3c 6f 70 74 69 6f  |ve)..R2 =.<optio|
00019aa0  6e 73 3d 3e 46 69 6c 65  72 41 63 74 69 6f 6e 5f  |ns=>FilerAction_|
00019ab0  6f 70 74 69 6f 6e 73 3e  0a 09 52 33 20 3d 09 6e  |options>..R3 =.n|
00019ac0  75 6c 6c 20 74 65 72 6d  69 6e 61 74 65 64 20 64  |ull terminated d|
00019ad0  65 73 74 69 6e 61 74 69  6f 6e 20 64 69 72 65 63  |estination direc|
00019ae0  74 6f 72 79 0a 09 52 34  20 3d 09 6c 65 6e 67 74  |tory..R4 =.lengt|
00019af0  68 20 28 69 6e 63 6c 75  64 69 6e 67 20 74 65 72  |h (including ter|
00019b00  6d 69 6e 61 74 69 6e 67  20 6e 75 6c 6c 29 0a 23  |minating null).#|
00019b10  53 75 62 70 61 67 65 20  37 0a 46 69 6c 65 72 41  |Subpage 7.FilerA|
00019b20  63 74 69 6f 6e 20 37 20  28 43 6f 70 79 20 6c 6f  |ction 7 (Copy lo|
00019b30  63 61 6c 29 0a 3d 3e 09  52 30 20 3d 09 68 61 6e  |cal).=>.R0 =.han|
00019b40  64 6c 65 20 6f 66 20 74  68 65 20 74 61 73 6b 20  |dle of the task |
00019b50  46 69 6c 65 72 5f 41 63  74 69 6f 6e 20 6a 75 73  |Filer_Action jus|
00019b60  74 20 73 74 61 72 74 65  64 2e 0a 09 52 31 20 3d  |t started...R1 =|
00019b70  09 37 20 28 43 6f 70 79  20 6c 6f 63 61 6c 29 0a  |.7 (Copy local).|
00019b80  09 52 32 20 3d 09 3c 6f  70 74 69 6f 6e 73 3d 3e  |.R2 =.<options=>|
00019b90  46 69 6c 65 72 41 63 74  69 6f 6e 5f 6f 70 74 69  |FilerAction_opti|
00019ba0  6f 6e 73 3e 0a 09 52 33  20 3d 09 6e 75 6c 6c 20  |ons>..R3 =.null |
00019bb0  74 65 72 6d 69 6e 61 74  65 64 20 64 65 73 74 69  |terminated desti|
00019bc0  6e 61 74 69 6f 6e 20 6f  62 6a 65 63 74 20 6e 61  |nation object na|
00019bd0  6d 65 0a 09 52 34 20 3d  09 6c 65 6e 67 74 68 20  |me..R4 =.length |
00019be0  28 69 6e 63 6c 75 64 69  6e 67 20 74 65 72 6d 69  |(including termi|
00019bf0  6e 61 74 69 6e 67 20 6e  75 6c 6c 29 0a 23 53 75  |nating null).#Su|
00019c00  62 70 61 67 65 20 38 0a  46 69 6c 65 72 41 63 74  |bpage 8.FilerAct|
00019c10  69 6f 6e 20 38 20 28 53  74 61 6d 70 29 0a 3d 3e  |ion 8 (Stamp).=>|
00019c20  09 52 30 20 3d 09 68 61  6e 64 6c 65 20 6f 66 20  |.R0 =.handle of |
00019c30  74 68 65 20 74 61 73 6b  20 46 69 6c 65 72 5f 41  |the task Filer_A|
00019c40  63 74 69 6f 6e 20 6a 75  73 74 20 73 74 61 72 74  |ction just start|
00019c50  65 64 2e 0a 09 52 31 20  3d 09 38 20 28 53 74 61  |ed...R1 =.8 (Sta|
00019c60  6d 70 29 0a 09 52 32 20  3d 09 3c 6f 70 74 69 6f  |mp)..R2 =.<optio|
00019c70  6e 73 3d 3e 46 69 6c 65  72 41 63 74 69 6f 6e 5f  |ns=>FilerAction_|
00019c80  6f 70 74 69 6f 6e 73 3e  0a 09 52 33 20 3d 09 75  |options>..R3 =.u|
00019c90  6e 75 73 65 64 0a 09 52  34 20 3d 09 30 0a 23 53  |nused..R4 =.0.#S|
00019ca0  75 62 70 61 67 65 20 39  0a 46 69 6c 65 72 41 63  |ubpage 9.FilerAc|
00019cb0  74 69 6f 6e 20 39 20 28  46 69 6e 64 29 0a 3d 3e  |tion 9 (Find).=>|
00019cc0  09 52 30 20 3d 09 68 61  6e 64 6c 65 20 6f 66 20  |.R0 =.handle of |
00019cd0  74 68 65 20 74 61 73 6b  20 46 69 6c 65 72 5f 41  |the task Filer_A|
00019ce0  63 74 69 6f 6e 20 6a 75  73 74 20 73 74 61 72 74  |ction just start|
00019cf0  65 64 2e 0a 09 52 31 20  3d 09 39 20 28 46 69 6e  |ed...R1 =.9 (Fin|
00019d00  64 29 0a 09 52 32 20 3d  09 3c 6f 70 74 69 6f 6e  |d)..R2 =.<option|
00019d10  73 3d 3e 46 69 6c 65 72  41 63 74 69 6f 6e 5f 6f  |s=>FilerAction_o|
00019d20  70 74 69 6f 6e 73 3e 0a  09 52 33 20 3d 09 6e 75  |ptions>..R3 =.nu|
00019d30  6c 6c 20 74 65 72 6d 69  6e 61 74 65 64 20 6e 61  |ll terminated na|
00019d40  6d 65 20 74 6f 20 66 69  6e 64 0a 09 52 34 20 3d  |me to find..R4 =|
00019d50  09 6c 65 6e 67 74 68 20  28 69 6e 63 6c 75 64 69  |.length (includi|
00019d60  6e 67 20 74 65 72 6d 69  6e 61 74 69 6e 67 20 6e  |ng terminating n|
00019d70  75 6c 6c 29 0a 00 00 00  44 41 54 41 9c 00 00 00  |ull)....DATA....|
00019d80  46 69 6c 65 72 5f 41 63  74 69 6f 6e 20 6f 70 74  |Filer_Action opt|
00019d90  69 6f 6e 20 62 69 74 73  0a 23 50 61 72 65 6e 74  |ion bits.#Parent|
00019da0  20 46 69 6c 65 72 41 63  74 69 6f 6e 5f 0a 42 69  | FilerAction_.Bi|
00019db0  74 09 4d 65 61 6e 69 6e  67 20 77 68 65 6e 20 73  |t.Meaning when s|
00019dc0  65 74 0a 23 4c 69 6e 65  0a 30 09 56 65 72 62 6f  |et.#Line.0.Verbo|
00019dd0  73 65 0a 31 09 43 6f 6e  66 69 72 6d 0a 32 09 46  |se.1.Confirm.2.F|
00019de0  6f 72 63 65 0a 33 09 4e  65 77 65 72 0a 34 09 52  |orce.3.Newer.4.R|
00019df0  65 63 75 72 73 65 20 28  6f 6e 6c 79 20 61 70 70  |ecurse (only app|
00019e00  6c 69 65 73 20 74 6f 20  73 65 74 20 61 63 63 65  |lies to set acce|
00019e10  73 73 29 0a 44 49 52 24  f0 02 00 00 f0 02 00 00  |ss).DIR$........|
00019e20  04 a1 01 00 48 fd ff ff  45 b5 5c 21 5e 01 00 00  |....H...E.\!^...|
00019e30  13 00 00 00 00 00 00 00  21 52 6f 6f 74 00 00 00  |........!Root...|
00019e40  64 a2 01 00 48 ff ff ff  07 82 09 28 07 02 00 00  |d...H......(....|
00019e50  13 00 00 00 00 00 00 00  52 65 67 69 73 74 65 72  |........Register|
00019e60  50 72 65 46 69 6c 74 65  72 00 00 00 6c a4 01 00  |PreFilter...l...|
00019e70  48 fd ff ff 6c 4c 09 28  4a 02 00 00 13 00 00 00  |H...lL.(J.......|
00019e80  00 00 00 00 66 69 6c 74  65 72 63 6f 64 65 00 00  |....filtercode..|
00019e90  b8 a6 01 00 48 ff ff ff  9f 5d 09 28 83 02 00 00  |....H....].(....|
00019ea0  13 00 00 00 00 00 00 00  52 65 67 69 73 74 65 72  |........Register|
00019eb0  50 6f 73 74 46 69 6c 74  65 72 00 00 3c a9 01 00  |PostFilter..<...|
00019ec0  48 ff ff ff 9c a3 dd 28  97 01 00 00 13 00 00 00  |H......(........|
00019ed0  00 00 00 00 44 65 52 65  67 69 73 74 65 72 50 72  |....DeRegisterPr|
00019ee0  65 46 69 6c 74 65 72 00  d4 aa 01 00 48 ff ff ff  |eFilter.....H...|
00019ef0  73 9a dd 28 c6 01 00 00  13 00 00 00 00 00 00 00  |s..(............|
00019f00  44 65 52 65 67 69 73 74  65 72 50 6f 73 74 46 69  |DeRegisterPostFi|
00019f10  6c 74 65 72 00 00 00 00  9c ac 01 00 48 ff ff ff  |lter........H...|
00019f20  56 67 09 28 d0 01 00 00  13 00 00 00 00 00 00 00  |Vg.(............|
00019f30  44 65 52 65 67 69 73 74  65 72 52 65 63 74 46 69  |DeRegisterRectFi|
00019f40  6c 74 65 72 00 00 00 00  6c ae 01 00 48 ff ff ff  |lter....l...H...|
00019f50  5a 6d 09 28 e3 01 00 00  13 00 00 00 00 00 00 00  |Zm.(............|
00019f60  44 65 52 65 67 69 73 74  65 72 50 6f 73 74 52 65  |DeRegisterPostRe|
00019f70  63 74 46 69 6c 74 65 72  00 00 00 00 50 b0 01 00  |ctFilter....P...|
00019f80  48 ff ff ff 5c 3f 5b 21  48 02 00 00 13 00 00 00  |H...\?[!H.......|
00019f90  00 00 00 00 52 65 67 69  73 74 65 72 52 65 63 74  |....RegisterRect|
00019fa0  46 69 6c 74 65 72 00 00  98 b2 01 00 48 ff ff ff  |Filter......H...|
00019fb0  2a 38 5b 21 4e 02 00 00  13 00 00 00 00 00 00 00  |*8[!N...........|
00019fc0  52 65 67 69 73 74 65 72  50 6f 73 74 52 65 63 74  |RegisterPostRect|
00019fd0  46 69 6c 74 65 72 00 00  e8 b4 01 00 48 fd ff ff  |Filter......H...|
00019fe0  8d cb 5b 21 0c 02 00 00  13 00 00 00 00 00 00 00  |..[!............|
00019ff0  72 65 63 74 63 6f 64 65  00 00 00 00 f4 b6 01 00  |rectcode........|
0001a000  48 ff ff ff 52 6b 09 28  f1 01 00 00 13 00 00 00  |H...Rk.(........|
0001a010  00 00 00 00 44 65 52 65  67 69 73 74 65 72 50 6f  |....DeRegisterPo|
0001a020  73 74 49 63 6f 6e 46 69  6c 74 65 72 00 00 00 00  |stIconFilter....|
0001a030  e8 b8 01 00 48 ff ff ff  d6 0c 5c 21 8f 02 00 00  |....H.....\!....|
0001a040  13 00 00 00 00 00 00 00  52 65 67 69 73 74 65 72  |........Register|
0001a050  50 6f 73 74 49 63 6f 6e  46 69 6c 74 65 72 00 00  |PostIconFilter..|
0001a060  78 bb 01 00 48 ff ff ff  3c 7c 5c 21 db 01 00 00  |x...H...<|\!....|
0001a070  13 00 00 00 00 00 00 00  52 65 67 69 73 74 65 72  |........Register|
0001a080  43 6f 70 79 46 69 6c 74  65 72 00 00 54 bd 01 00  |CopyFilter..T...|
0001a090  48 ff ff ff 7f 69 09 28  a1 01 00 00 13 00 00 00  |H....i.(........|
0001a0a0  00 00 00 00 44 65 52 65  67 69 73 74 65 72 43 6f  |....DeRegisterCo|
0001a0b0  70 79 46 69 6c 74 65 72  00 00 00 00 f8 be 01 00  |pyFilter........|
0001a0c0  48 fd ff ff 1e a9 5c 21  6f 01 00 00 13 00 00 00  |H.....\!o.......|
0001a0d0  00 00 00 00 69 63 6f 6e  63 6f 64 65 00 00 00 00  |....iconcode....|
0001a0e0  68 c0 01 00 48 fd ff ff  ca a4 5c 21 eb 00 00 00  |h...H.....\!....|
0001a0f0  13 00 00 00 00 00 00 00  63 6f 70 79 63 6f 64 65  |........copycode|
0001a100  00 00 00 00 44 41 54 41  5e 01 00 00 46 69 6c 74  |....DATA^...Filt|
0001a110  65 72 0a 23 50 72 65 66  69 78 20 46 69 6c 74 65  |er.#Prefix Filte|
0001a120  72 5f 0a 23 50 61 72 65  6e 74 20 21 52 6f 6f 74  |r_.#Parent !Root|
0001a130  0a 23 54 61 62 6c 65 20  43 6f 6c 75 6d 6e 73 20  |.#Table Columns |
0001a140  33 0a 3c 44 65 52 65 67  69 73 74 65 72 50 6f 73  |3.<DeRegisterPos|
0001a150  74 46 69 6c 74 65 72 3e  0a 3c 44 65 52 65 67 69  |tFilter>.<DeRegi|
0001a160  73 74 65 72 50 72 65 46  69 6c 74 65 72 3e 0a 3c  |sterPreFilter>.<|
0001a170  52 65 67 69 73 74 65 72  50 6f 73 74 46 69 6c 74  |RegisterPostFilt|
0001a180  65 72 3e 0a 3c 52 65 67  69 73 74 65 72 50 72 65  |er>.<RegisterPre|
0001a190  46 69 6c 74 65 72 3e 0a  3c 52 65 67 69 73 74 65  |Filter>.<Registe|
0001a1a0  72 52 65 63 74 46 69 6c  74 65 72 3e 0a 3c 44 65  |rRectFilter>.<De|
0001a1b0  52 65 67 69 73 74 65 72  52 65 63 74 46 69 6c 74  |RegisterRectFilt|
0001a1c0  65 72 3e 0a 3c 52 65 67  69 73 74 65 72 43 6f 70  |er>.<RegisterCop|
0001a1d0  79 46 69 6c 74 65 72 3e  0a 3c 44 65 52 65 67 69  |yFilter>.<DeRegi|
0001a1e0  73 74 65 72 43 6f 70 79  46 69 6c 74 65 72 3e 0a  |sterCopyFilter>.|
0001a1f0  3c 52 65 67 69 73 74 65  72 50 6f 73 74 52 65 63  |<RegisterPostRec|
0001a200  74 46 69 6c 74 65 72 3e  0a 3c 44 65 52 65 67 69  |tFilter>.<DeRegi|
0001a210  73 74 65 72 50 6f 73 74  52 65 63 74 46 69 6c 74  |sterPostRectFilt|
0001a220  65 72 3e 0a 3c 52 65 67  69 73 74 65 72 50 6f 73  |er>.<RegisterPos|
0001a230  74 49 63 6f 6e 46 69 6c  74 65 72 3e 0a 3c 44 65  |tIconFilter>.<De|
0001a240  52 65 67 69 73 74 65 72  50 6f 73 74 49 63 6f 6e  |RegisterPostIcon|
0001a250  46 69 6c 74 65 72 3e 0a  23 45 6e 64 54 61 62 6c  |Filter>.#EndTabl|
0001a260  65 0a 00 00 44 41 54 41  07 02 00 00 46 69 6c 74  |e...DATA....Filt|
0001a270  65 72 5f 52 65 67 69 73  74 65 72 50 72 65 46 69  |er_RegisterPreFi|
0001a280  6c 74 65 72 20 20 28 26  34 32 36 34 30 29 0a 23  |lter  (&42640).#|
0001a290  50 61 72 65 6e 74 20 46  69 6c 74 65 72 5f 0a 3d  |Parent Filter_.=|
0001a2a0  3e 09 52 30 20 3d 09 50  6f 69 6e 74 65 72 20 74  |>.R0 =.Pointer t|
0001a2b0  6f 20 7a 65 72 6f 20 74  65 72 6d 69 6e 61 74 65  |o zero terminate|
0001a2c0  64 20 66 69 6c 74 65 72  20 6e 61 6d 65 0a 09 52  |d filter name..R|
0001a2d0  31 20 3d 09 41 64 64 72  65 73 73 20 6f 66 20 3c  |1 =.Address of <|
0001a2e0  66 69 6c 74 65 72 20 63  6f 64 65 3d 3e 46 69 6c  |filter code=>Fil|
0001a2f0  74 65 72 5f 66 69 6c 74  65 72 63 6f 64 65 3e 0a  |ter_filtercode>.|
0001a300  09 52 32 20 3d 09 56 61  6c 75 65 20 74 6f 20 62  |.R2 =.Value to b|
0001a310  65 20 70 61 73 73 65 64  20 69 6e 20 52 31 32 0a  |e passed in R12.|
0001a320  09 52 33 20 3d 09 54 61  73 6b 20 68 61 6e 64 6c  |.R3 =.Task handl|
0001a330  65 20 6f 66 20 74 61 73  6b 20 74 6f 20 77 68 69  |e of task to whi|
0001a340  63 68 20 66 69 6c 74 65  72 20 69 73 20 61 70 70  |ch filter is app|
0001a350  6c 69 65 64 20 6f 72 20  30 20 66 6f 72 20 61 6c  |lied or 0 for al|
0001a360  6c 20 74 61 73 6b 73 0a  0a 3c 3d 09 61 6c 6c 20  |l tasks..<=.all |
0001a370  72 65 67 69 73 74 65 72  73 20 70 72 65 73 65 72  |registers preser|
0001a380  76 65 64 0a 0a 41 64 64  73 20 61 20 6e 65 77 20  |ved..Adds a new |
0001a390  70 72 65 2d 66 69 6c 74  65 72 20 74 6f 20 74 68  |pre-filter to th|
0001a3a0  65 20 6c 69 73 74 20 6f  66 20 70 72 65 2d 66 69  |e list of pre-fi|
0001a3b0  6c 74 65 72 73 2e 0a 0a  57 68 65 6e 65 76 65 72  |lters...Whenever|
0001a3c0  20 74 68 65 20 74 61 73  6b 20 77 69 74 68 20 68  | the task with h|
0001a3d0  61 6e 64 6c 65 20 73 70  65 63 69 66 69 65 64 20  |andle specified |
0001a3e0  62 79 20 52 33 20 63 61  6c 6c 73 20 3c 57 69 6d  |by R3 calls <Wim|
0001a3f0  70 5f 50 6f 6c 6c 3e 20  74 68 65 20 61 64 64 72  |p_Poll> the addr|
0001a400  65 73 73 20 70 6f 69 6e  74 65 64 20 74 6f 20 62  |ess pointed to b|
0001a410  79 20 52 31 20 77 69 6c  6c 20 62 65 20 63 61 6c  |y R1 will be cal|
0001a420  6c 65 64 2c 20 77 69 74  68 20 52 31 32 20 73 65  |led, with R12 se|
0001a430  74 20 74 6f 20 74 68 65  20 76 61 6c 75 65 20 67  |t to the value g|
0001a440  69 76 65 6e 20 69 6e 20  52 32 20 77 68 65 6e 20  |iven in R2 when |
0001a450  74 68 65 20 66 69 6c 74  65 72 20 77 61 73 20 72  |the filter was r|
0001a460  65 67 69 73 74 65 72 65  64 2e 0a 00 44 41 54 41  |egistered...DATA|
0001a470  4a 02 00 00 46 69 6c 74  65 72 20 63 6f 64 65 0a  |J...Filter code.|
0001a480  23 50 61 72 65 6e 74 20  46 69 6c 74 65 72 5f 0a  |#Parent Filter_.|
0001a490  23 57 72 61 70 20 4f 66  66 0a 3d 3e 09 52 30 20  |#Wrap Off.=>.R0 |
0001a4a0  3d 09 45 76 65 6e 74 20  6d 61 73 6b 20 61 73 20  |=.Event mask as |
0001a4b0  70 61 73 73 65 64 20 74  6f 20 3c 57 69 6d 70 5f  |passed to <Wimp_|
0001a4c0  50 6f 6c 6c 3e 20 66 6f  72 20 50 72 65 20 66 69  |Poll> for Pre fi|
0001a4d0  6c 74 65 72 73 0a 09 20  09 45 76 65 6e 74 20 72  |lters.. .Event r|
0001a4e0  65 61 73 6f 6e 20 63 6f  64 65 20 62 65 69 6e 67  |eason code being|
0001a4f0  20 72 65 74 75 72 6e 65  64 20 66 6f 72 20 50 6f  | returned for Po|
0001a500  73 74 20 66 69 6c 74 65  72 73 0a 09 52 31 20 3d  |st filters..R1 =|
0001a510  09 55 73 65 72 27 73 20  65 76 65 6e 74 20 62 75  |.User's event bu|
0001a520  66 66 65 72 0a 09 52 32  20 3d 09 54 61 73 6b 20  |ffer..R2 =.Task |
0001a530  68 61 6e 64 6c 65 20 6f  66 20 74 61 73 6b 20 74  |handle of task t|
0001a540  68 61 74 20 63 61 6c 6c  65 64 20 57 69 6d 70 5f  |hat called Wimp_|
0001a550  50 6f 6c 6c 0a 09 52 31  32 20 3d 09 56 61 6c 75  |Poll..R12 =.Valu|
0001a560  65 20 6f 66 20 52 32 20  77 68 65 6e 20 66 69 6c  |e of R2 when fil|
0001a570  74 65 72 20 72 65 67 69  73 74 65 72 65 64 0a 23  |ter registered.#|
0001a580  57 72 61 70 0a 0a 3c 3d  09 50 72 65 3a 09 49 74  |Wrap..<=.Pre:.It|
0001a590  20 6d 61 79 20 63 6c 65  61 72 20 62 69 74 73 20  | may clear bits |
0001a5a0  69 6e 20 52 30 20 74 6f  20 70 72 6f 76 69 64 65  |in R0 to provide|
0001a5b0  20 61 20 6e 65 77 20 65  76 65 6e 74 20 6d 61 73  | a new event mas|
0001a5c0  6b 0a 09 20 09 49 74 20  6d 75 73 74 20 70 72 65  |k.. .It must pre|
0001a5d0  73 65 72 76 65 20 61 6c  6c 20 6f 74 68 65 72 20  |serve all other |
0001a5e0  72 65 67 69 73 74 65 72  73 0a 0a 09 50 6f 73 74  |registers...Post|
0001a5f0  3a 09 54 68 65 20 72 6f  75 74 69 6e 65 20 6d 61  |:.The routine ma|
0001a600  79 20 6d 6f 64 69 66 79  20 74 68 65 20 72 65 61  |y modify the rea|
0001a610  73 6f 6e 20 63 6f 64 65  20 69 6e 20 52 30 20 61  |son code in R0 a|
0001a620  6e 64 20 74 68 65 20 63  6f 6e 74 65 6e 74 73 20  |nd the contents |
0001a630  6f 66 20 74 68 65 20 62  75 66 66 65 72 20 70 6f  |of the buffer po|
0001a640  69 6e 74 65 64 20 74 6f  20 62 79 20 52 31 20 74  |inted to by R1 t|
0001a650  6f 20 70 72 6f 76 69 64  65 20 61 20 6e 65 77 20  |o provide a new |
0001a660  65 76 65 6e 74 0a 09 20  09 52 30 20 3d 20 2d 31  |event.. .R0 = -1|
0001a670  20 74 6f 20 70 72 65 76  65 6e 74 20 65 76 65 6e  | to prevent even|
0001a680  74 20 62 65 69 6e 67 20  70 61 73 73 65 64 20 74  |t being passed t|
0001a690  6f 20 74 61 73 6b 0a 09  20 09 49 74 20 6d 75 73  |o task.. .It mus|
0001a6a0  74 20 70 72 65 73 65 72  76 65 20 52 31 20 61 6e  |t preserve R1 an|
0001a6b0  64 20 52 32 2e 0a 00 00  44 41 54 41 83 02 00 00  |d R2....DATA....|
0001a6c0  46 69 6c 74 65 72 5f 52  65 67 69 73 74 65 72 50  |Filter_RegisterP|
0001a6d0  6f 73 74 46 69 6c 74 65  72 20 20 28 26 34 32 36  |ostFilter  (&426|
0001a6e0  34 31 29 0a 23 50 61 72  65 6e 74 20 46 69 6c 74  |41).#Parent Filt|
0001a6f0  65 72 5f 0a 3d 3e 09 52  30 20 3d 09 50 6f 69 6e  |er_.=>.R0 =.Poin|
0001a700  74 65 72 20 74 6f 20 7a  65 72 6f 20 74 65 72 6d  |ter to zero term|
0001a710  69 6e 61 74 65 64 20 66  69 6c 74 65 72 20 6e 61  |inated filter na|
0001a720  6d 65 0a 09 52 31 20 3d  09 41 64 64 72 65 73 73  |me..R1 =.Address|
0001a730  73 20 6f 66 20 3c 66 69  6c 74 65 72 20 63 6f 64  |s of <filter cod|
0001a740  65 3d 3e 46 69 6c 74 65  72 5f 66 69 6c 74 65 72  |e=>Filter_filter|
0001a750  63 6f 64 65 3e 0a 09 52  32 20 3d 09 56 61 6c 75  |code>..R2 =.Valu|
0001a760  65 20 74 6f 20 62 65 20  70 61 73 73 65 64 20 69  |e to be passed i|
0001a770  6e 20 52 31 32 0a 09 52  33 20 3d 09 54 61 73 6b  |n R12..R3 =.Task|
0001a780  20 68 61 6e 64 6c 65 20  6f 66 20 74 61 73 6b 20  | handle of task |
0001a790  74 6f 20 77 68 69 63 68  20 66 69 6c 74 65 72 20  |to which filter |
0001a7a0  69 73 20 61 70 70 6c 69  65 64 20 6f 72 20 30 20  |is applied or 0 |
0001a7b0  66 6f 72 20 61 6c 6c 20  74 61 73 6b 73 0a 09 52  |for all tasks..R|
0001a7c0  34 20 3d 09 45 76 65 6e  74 20 3c 6d 61 73 6b 3d  |4 =.Event <mask=|
0001a7d0  3e 57 69 6d 70 5f 70 6f  6c 6c 6d 61 73 6b 3e 20  |>Wimp_pollmask> |
0001a7e0  28 31 20 62 69 74 20 6d  61 73 6b 73 20 74 68 65  |(1 bit masks the|
0001a7f0  20 65 76 65 6e 74 20 6f  75 74 20 61 73 20 66 6f  | event out as fo|
0001a800  72 20 3c 57 69 6d 70 5f  50 6f 6c 6c 3e 29 0a 0a  |r <Wimp_Poll>)..|
0001a810  3c 3d 09 61 6c 6c 20 72  65 67 69 73 74 65 72 73  |<=.all registers|
0001a820  20 70 72 65 73 65 72 76  65 64 0a 0a 54 68 69 73  | preserved..This|
0001a830  20 53 57 49 20 61 64 64  73 20 61 20 6e 65 77 20  | SWI adds a new |
0001a840  70 6f 73 74 20 66 69 6c  74 65 72 20 74 6f 20 74  |post filter to t|
0001a850  68 65 20 6c 69 73 74 20  6f 66 20 70 6f 73 74 20  |he list of post |
0001a860  66 69 6c 74 65 72 73 2e  20 57 68 65 6e 65 76 65  |filters. Wheneve|
0001a870  72 20 74 68 65 20 57 69  6d 70 20 69 73 20 61 62  |r the Wimp is ab|
0001a880  6f 75 74 20 74 6f 20 72  65 74 75 72 6e 20 66 72  |out to return fr|
0001a890  6f 6d 20 3c 57 69 6d 70  5f 50 6f 6c 6c 3e 20 74  |om <Wimp_Poll> t|
0001a8a0  6f 20 74 68 65 20 74 61  73 6b 20 77 69 74 68 20  |o the task with |
0001a8b0  68 61 6e 64 6c 65 20 73  70 65 63 69 66 69 65 64  |handle specified|
0001a8c0  20 62 79 20 52 33 2c 20  74 68 65 20 61 64 64 72  | by R3, the addr|
0001a8d0  65 73 73 20 70 6f 69 6e  74 65 64 20 74 6f 20 62  |ess pointed to b|
0001a8e0  79 20 52 31 20 77 69 6c  6c 20 62 65 20 63 61 6c  |y R1 will be cal|
0001a8f0  6c 65 64 2c 20 77 69 74  68 20 52 31 32 20 73 65  |led, with R12 se|
0001a900  74 20 74 6f 20 74 68 65  20 76 61 6c 75 65 20 67  |t to the value g|
0001a910  69 76 65 6e 20 69 6e 20  52 32 20 77 68 65 6e 20  |iven in R2 when |
0001a920  74 68 65 20 66 69 6c 74  65 72 20 77 61 73 20 72  |the filter was r|
0001a930  65 67 69 73 74 65 72 65  64 2e 0a 00 44 41 54 41  |egistered...DATA|
0001a940  97 01 00 00 46 69 6c 74  65 72 5f 44 65 52 65 67  |....Filter_DeReg|
0001a950  69 73 74 65 72 50 72 65  46 69 6c 74 65 72 20 20  |isterPreFilter  |
0001a960  28 26 34 32 36 34 32 29  0a 23 50 61 72 65 6e 74  |(&42642).#Parent|
0001a970  20 46 69 6c 74 65 72 5f  0a 3d 3e 09 52 30 20 3d  | Filter_.=>.R0 =|
0001a980  09 70 6f 69 6e 74 65 72  20 74 6f 20 7a 65 72 6f  |.pointer to zero|
0001a990  20 74 65 72 6d 69 6e 61  74 65 64 20 66 69 6c 74  | terminated filt|
0001a9a0  65 72 20 6e 61 6d 65 0a  09 52 31 20 3d 09 61 64  |er name..R1 =.ad|
0001a9b0  64 72 65 73 73 73 20 6f  66 20 3c 66 69 6c 74 65  |dresss of <filte|
0001a9c0  72 20 63 6f 64 65 3d 3e  46 69 6c 74 65 72 5f 66  |r code=>Filter_f|
0001a9d0  69 6c 74 65 72 63 6f 64  65 3e 0a 09 52 32 20 3d  |iltercode>..R2 =|
0001a9e0  09 76 61 6c 75 65 20 74  6f 20 62 65 20 70 61 73  |.value to be pas|
0001a9f0  73 65 64 20 69 6e 20 52  31 32 0a 09 52 33 20 3d  |sed in R12..R3 =|
0001aa00  09 74 61 73 6b 20 68 61  6e 64 6c 65 20 6f 66 20  |.task handle of |
0001aa10  74 61 73 6b 20 74 6f 20  77 68 69 63 68 20 66 69  |task to which fi|
0001aa20  6c 74 65 72 20 77 61 73  20 61 70 70 6c 69 65 64  |lter was applied|
0001aa30  0a 0a 3c 3d 09 61 6c 6c  20 72 65 67 69 73 74 65  |..<=.all registe|
0001aa40  72 73 20 70 72 65 73 65  72 76 65 64 0a 0a 52 65  |rs preserved..Re|
0001aa50  6d 6f 76 65 73 20 61 20  70 72 65 20 66 69 6c 74  |moves a pre filt|
0001aa60  65 72 20 66 72 6f 6d 20  74 68 65 20 6c 69 73 74  |er from the list|
0001aa70  20 6f 66 20 70 72 65 20  66 69 6c 74 65 72 73 2e  | of pre filters.|
0001aa80  0a 0a 4e 6f 74 65 3a 20  41 6c 6c 20 76 61 6c 75  |..Note: All valu|
0001aa90  65 73 20 6d 75 73 74 20  62 65 20 74 68 65 20 73  |es must be the s|
0001aaa0  61 6d 65 20 61 73 20 74  68 6f 73 65 20 70 61 73  |ame as those pas|
0001aab0  73 65 64 20 74 6f 20 3c  46 69 6c 74 65 72 5f 52  |sed to <Filter_R|
0001aac0  65 67 69 73 74 65 72 50  72 65 46 69 6c 74 65 72  |egisterPreFilter|
0001aad0  3e 2e 0a 00 44 41 54 41  c6 01 00 00 46 69 6c 74  |>...DATA....Filt|
0001aae0  65 72 5f 44 65 52 65 67  69 73 74 65 72 50 6f 73  |er_DeRegisterPos|
0001aaf0  74 46 69 6c 74 65 72 20  20 28 26 34 32 36 34 33  |tFilter  (&42643|
0001ab00  29 0a 23 50 61 72 65 6e  74 20 46 69 6c 74 65 72  |).#Parent Filter|
0001ab10  5f 0a 3d 3e 09 52 30 20  3d 09 70 6f 69 6e 74 65  |_.=>.R0 =.pointe|
0001ab20  72 20 74 6f 20 7a 65 72  6f 20 74 65 72 6d 69 6e  |r to zero termin|
0001ab30  61 74 65 64 20 66 69 6c  74 65 72 20 6e 61 6d 65  |ated filter name|
0001ab40  0a 09 52 31 20 3d 09 61  64 64 72 65 73 73 73 20  |..R1 =.addresss |
0001ab50  6f 66 20 3c 66 69 6c 74  65 72 20 63 6f 64 65 3d  |of <filter code=|
0001ab60  3e 46 69 6c 74 65 72 5f  66 69 6c 74 65 72 63 6f  |>Filter_filterco|
0001ab70  64 65 3e 0a 09 52 32 20  3d 09 76 61 6c 75 65 20  |de>..R2 =.value |
0001ab80  74 6f 20 62 65 20 70 61  73 73 65 64 20 69 6e 20  |to be passed in |
0001ab90  52 31 32 0a 09 52 33 20  3d 09 74 61 73 6b 20 68  |R12..R3 =.task h|
0001aba0  61 6e 64 6c 65 20 6f 66  20 74 61 73 6b 20 74 6f  |andle of task to|
0001abb0  20 77 68 69 63 68 20 66  69 6c 74 65 72 20 77 61  | which filter wa|
0001abc0  73 20 61 70 70 6c 69 65  64 0a 09 52 34 20 3d 09  |s applied..R4 =.|
0001abd0  65 76 65 6e 74 20 3c 6d  61 73 6b 3d 3e 57 69 6d  |event <mask=>Wim|
0001abe0  70 5f 70 6f 6c 6c 6d 61  73 6b 3e 0a 09 0a 3c 3d  |p_pollmask>...<=|
0001abf0  09 61 6c 6c 20 72 65 67  69 73 74 65 72 73 20 70  |.all registers p|
0001ac00  72 65 73 65 72 76 65 64  0a 0a 54 68 69 73 20 53  |reserved..This S|
0001ac10  57 49 20 72 65 6d 6f 76  65 73 20 61 20 70 6f 73  |WI removes a pos|
0001ac20  74 2d 66 69 6c 74 65 72  20 66 72 6f 6d 20 74 68  |t-filter from th|
0001ac30  65 20 6c 69 73 74 20 6f  66 20 70 6f 73 74 2d 66  |e list of post-f|
0001ac40  69 6c 74 65 72 73 2e 0a  0a 4e 6f 74 65 3a 20 41  |ilters...Note: A|
0001ac50  6c 6c 20 76 61 6c 75 65  73 20 6d 75 73 74 20 62  |ll values must b|
0001ac60  65 20 74 68 65 20 73 61  6d 65 20 61 73 20 74 68  |e the same as th|
0001ac70  6f 73 65 20 70 61 73 73  65 64 20 74 6f 20 3c 46  |ose passed to <F|
0001ac80  69 6c 74 65 72 5f 52 65  67 69 73 74 65 72 50 6f  |ilter_RegisterPo|
0001ac90  73 74 46 69 6c 74 65 72  3e 0a 00 00 44 41 54 41  |stFilter>...DATA|
0001aca0  d0 01 00 00 46 69 6c 74  65 72 5f 44 65 52 65 67  |....Filter_DeReg|
0001acb0  69 73 74 65 72 52 65 63  74 46 69 6c 74 65 72 0a  |isterRectFilter.|
0001acc0  23 50 61 72 65 6e 74 20  46 69 6c 74 65 72 5f 0a  |#Parent Filter_.|
0001acd0  3d 3e 09 52 30 20 3d 09  70 6f 69 6e 74 65 72 20  |=>.R0 =.pointer |
0001ace0  74 6f 20 7a 65 72 6f 20  74 65 72 6d 69 6e 61 74  |to zero terminat|
0001acf0  65 64 20 66 69 6c 74 65  72 20 6e 61 6d 65 0a 09  |ed filter name..|
0001ad00  52 31 20 3d 09 61 64 64  72 65 73 73 73 20 6f 66  |R1 =.addresss of|
0001ad10  20 3c 66 69 6c 74 65 72  20 63 6f 64 65 3d 3e 46  | <filter code=>F|
0001ad20  69 6c 74 65 72 5f 72 65  63 74 63 6f 64 65 3e 0a  |ilter_rectcode>.|
0001ad30  09 52 32 20 3d 09 76 61  6c 75 65 20 74 6f 20 62  |.R2 =.value to b|
0001ad40  65 20 70 61 73 73 65 64  20 69 6e 20 52 31 32 0a  |e passed in R12.|
0001ad50  09 52 33 20 3d 09 74 61  73 6b 20 68 61 6e 64 6c  |.R3 =.task handl|
0001ad60  65 20 6f 66 20 74 61 73  6b 20 74 6f 20 77 68 69  |e of task to whi|
0001ad70  63 68 20 66 69 6c 74 65  72 20 77 61 73 20 61 70  |ch filter was ap|
0001ad80  70 6c 69 65 64 0a 09 0a  3c 3d 09 61 6c 6c 20 72  |plied...<=.all r|
0001ad90  65 67 69 73 74 65 72 73  20 70 72 65 73 65 72 76  |egisters preserv|
0001ada0  65 64 0a 0a 54 68 69 73  20 53 57 49 20 72 65 6d  |ed..This SWI rem|
0001adb0  6f 76 65 73 20 61 20 3c  57 69 6d 70 5f 47 65 74  |oves a <Wimp_Get|
0001adc0  52 65 63 74 61 6e 67 6c  65 3e 20 70 72 65 2d 66  |Rectangle> pre-f|
0001add0  69 6c 74 65 72 20 66 72  6f 6d 20 74 68 65 20 6c  |ilter from the l|
0001ade0  69 73 74 2e 0a 0a 4e 6f  74 65 3a 20 41 6c 6c 20  |ist...Note: All |
0001adf0  6d 75 73 74 20 62 65 20  74 68 65 20 73 61 6d 65  |must be the same|
0001ae00  20 61 73 20 74 68 6f 73  65 20 70 61 73 73 65 64  | as those passed|
0001ae10  20 74 6f 20 3c 46 69 6c  74 65 72 5f 52 65 67 69  | to <Filter_Regi|
0001ae20  73 74 65 72 52 65 63 74  46 69 6c 74 65 72 3e 2e  |sterRectFilter>.|
0001ae30  0a 0a 2a 4e 6f 74 65 3a  2a 20 54 68 69 73 20 69  |..*Note:* This i|
0001ae40  73 20 73 74 69 6c 6c 20  6f 6e 6c 79 20 61 20 27  |s still only a '|
0001ae50  67 75 65 73 73 27 20 61  74 20 74 68 65 20 77 61  |guess' at the wa|
0001ae60  79 20 69 74 20 77 6f 72  6b 73 2e 0a 44 41 54 41  |y it works..DATA|
0001ae70  e3 01 00 00 46 69 6c 74  65 72 5f 44 65 52 65 67  |....Filter_DeReg|
0001ae80  69 73 74 65 72 50 6f 73  74 52 65 63 74 46 69 6c  |isterPostRectFil|
0001ae90  74 65 72 0a 23 50 61 72  65 6e 74 20 46 69 6c 74  |ter.#Parent Filt|
0001aea0  65 72 5f 0a 3d 3e 09 52  30 20 3d 09 70 6f 69 6e  |er_.=>.R0 =.poin|
0001aeb0  74 65 72 20 74 6f 20 7a  65 72 6f 20 74 65 72 6d  |ter to zero term|
0001aec0  69 6e 61 74 65 64 20 66  69 6c 74 65 72 20 6e 61  |inated filter na|
0001aed0  6d 65 0a 09 52 31 20 3d  09 61 64 64 72 65 73 73  |me..R1 =.address|
0001aee0  73 20 6f 66 20 3c 66 69  6c 74 65 72 20 63 6f 64  |s of <filter cod|
0001aef0  65 3d 3e 46 69 6c 74 65  72 5f 72 65 63 74 63 6f  |e=>Filter_rectco|
0001af00  64 65 3e 0a 09 52 32 20  3d 09 76 61 6c 75 65 20  |de>..R2 =.value |
0001af10  74 6f 20 62 65 20 70 61  73 73 65 64 20 69 6e 20  |to be passed in |
0001af20  52 31 32 0a 09 52 33 20  3d 09 74 61 73 6b 20 68  |R12..R3 =.task h|
0001af30  61 6e 64 6c 65 20 6f 66  20 74 61 73 6b 20 74 6f  |andle of task to|
0001af40  20 77 68 69 63 68 20 66  69 6c 74 65 72 20 77 61  | which filter wa|
0001af50  73 20 61 70 70 6c 69 65  64 0a 09 0a 3c 3d 09 61  |s applied...<=.a|
0001af60  6c 6c 20 72 65 67 69 73  74 65 72 73 20 70 72 65  |ll registers pre|
0001af70  73 65 72 76 65 64 0a 0a  54 68 69 73 20 53 57 49  |served..This SWI|
0001af80  20 72 65 6d 6f 76 65 73  20 61 20 3c 57 69 6d 70  | removes a <Wimp|
0001af90  5f 47 65 74 52 65 63 74  61 6e 67 6c 65 3e 20 70  |_GetRectangle> p|
0001afa0  6f 73 74 2d 66 69 6c 74  65 72 20 66 72 6f 6d 20  |ost-filter from |
0001afb0  74 68 65 20 6c 69 73 74  2e 0a 0a 4e 6f 74 65 3a  |the list...Note:|
0001afc0  20 41 6c 6c 20 72 65 67  69 73 74 65 72 73 20 6d  | All registers m|
0001afd0  75 73 74 20 62 65 20 74  68 65 20 73 61 6d 65 20  |ust be the same |
0001afe0  61 73 20 74 68 6f 73 65  20 70 61 73 73 65 64 20  |as those passed |
0001aff0  74 6f 20 3c 46 69 6c 74  65 72 5f 52 65 67 69 73  |to <Filter_Regis|
0001b000  74 65 72 50 6f 73 74 52  65 63 74 46 69 6c 74 65  |terPostRectFilte|
0001b010  72 3e 2e 0a 0a 2a 4e 6f  74 65 3a 2a 20 54 68 69  |r>...*Note:* Thi|
0001b020  73 20 69 73 20 73 74 69  6c 6c 20 6f 6e 6c 79 20  |s is still only |
0001b030  61 20 27 67 75 65 73 73  27 20 61 74 20 74 68 65  |a 'guess' at the|
0001b040  20 77 61 79 20 69 74 20  77 6f 72 6b 73 2e 0a 00  | way it works...|
0001b050  44 41 54 41 48 02 00 00  46 69 6c 74 65 72 5f 52  |DATAH...Filter_R|
0001b060  65 67 69 73 74 65 72 52  65 63 74 46 69 6c 74 65  |egisterRectFilte|
0001b070  72 0a 23 50 61 72 65 6e  74 20 46 69 6c 74 65 72  |r.#Parent Filter|
0001b080  5f 0a 3d 3e 09 52 30 20  3d 09 70 6f 69 6e 74 65  |_.=>.R0 =.pointe|
0001b090  72 20 74 6f 20 7a 65 72  6f 20 74 65 72 6d 69 6e  |r to zero termin|
0001b0a0  61 74 65 64 20 66 69 6c  74 65 72 20 6e 61 6d 65  |ated filter name|
0001b0b0  0a 09 52 31 20 3d 09 61  64 64 72 65 73 73 20 6f  |..R1 =.address o|
0001b0c0  66 20 3c 66 69 6c 74 65  72 20 63 6f 64 65 3d 3e  |f <filter code=>|
0001b0d0  46 69 6c 74 65 72 5f 72  65 63 74 63 6f 64 65 3e  |Filter_rectcode>|
0001b0e0  0a 09 52 32 20 3d 09 76  61 6c 75 65 20 74 6f 20  |..R2 =.value to |
0001b0f0  62 65 20 70 61 73 73 65  64 20 69 6e 20 52 31 32  |be passed in R12|
0001b100  0a 09 52 33 20 3d 09 74  61 73 6b 20 68 61 6e 64  |..R3 =.task hand|
0001b110  6c 65 20 6f 66 20 74 61  73 6b 20 74 6f 20 77 68  |le of task to wh|
0001b120  69 63 68 20 66 69 6c 74  65 72 20 69 73 20 61 70  |ich filter is ap|
0001b130  70 6c 69 65 64 20 6f 72  20 30 20 66 6f 72 20 61  |plied or 0 for a|
0001b140  6c 6c 20 74 61 73 6b 73  0a 0a 3c 3d 09 61 6c 6c  |ll tasks..<=.all|
0001b150  20 72 65 67 69 73 74 65  72 73 20 70 72 65 73 65  | registers prese|
0001b160  72 76 65 64 0a 0a 41 64  64 73 20 61 20 6e 65 77  |rved..Adds a new|
0001b170  20 3c 57 69 6d 70 5f 47  65 74 52 65 63 74 61 6e  | <Wimp_GetRectan|
0001b180  67 6c 65 3e 20 70 72 65  2d 66 69 6c 74 65 72 20  |gle> pre-filter |
0001b190  74 6f 20 74 68 65 20 6c  69 73 74 20 6f 66 20 70  |to the list of p|
0001b1a0  72 65 2d 66 69 6c 74 65  72 73 2e 0a 0a 54 68 65  |re-filters...The|
0001b1b0  20 61 64 64 72 65 73 73  20 70 6f 69 6e 74 65 64  | address pointed|
0001b1c0  20 74 6f 20 62 79 20 52  31 20 77 69 6c 6c 20 62  | to by R1 will b|
0001b1d0  65 20 63 61 6c 6c 65 64  20 77 68 65 6e 65 76 65  |e called wheneve|
0001b1e0  72 20 74 68 65 20 74 61  73 6b 20 77 68 6f 27 73  |r the task who's|
0001b1f0  20 68 61 6e 64 6c 65 20  69 73 20 70 61 73 73 65  | handle is passe|
0001b200  64 20 69 6e 20 52 33 20  63 61 6c 6c 73 20 3c 57  |d in R3 calls <W|
0001b210  69 6d 70 5f 47 65 74 52  65 63 74 61 6e 67 6c 65  |imp_GetRectangle|
0001b220  3e 20 77 69 74 68 20 52  31 32 20 65 71 75 61 6c  |> with R12 equal|
0001b230  20 74 6f 20 74 68 65 20  76 61 6c 75 65 20 6f 66  | to the value of|
0001b240  20 52 32 20 77 68 65 6e  20 74 68 69 73 20 53 57  | R2 when this SW|
0001b250  49 20 69 73 20 63 61 6c  6c 65 64 2e 0a 0a 2a 4e  |I is called...*N|
0001b260  6f 74 65 3a 2a 20 54 68  69 73 20 69 73 20 73 74  |ote:* This is st|
0001b270  69 6c 6c 20 6f 6e 6c 79  20 61 20 27 67 75 65 73  |ill only a 'gues|
0001b280  73 27 20 61 74 20 74 68  65 20 77 61 79 20 69 74  |s' at the way it|
0001b290  20 77 6f 72 6b 73 2e 0a  44 41 54 41 4e 02 00 00  | works..DATAN...|
0001b2a0  46 69 6c 74 65 72 5f 52  65 67 69 73 74 65 72 50  |Filter_RegisterP|
0001b2b0  6f 73 74 52 65 63 74 46  69 6c 74 65 72 0a 23 50  |ostRectFilter.#P|
0001b2c0  61 72 65 6e 74 20 46 69  6c 74 65 72 5f 0a 3d 3e  |arent Filter_.=>|
0001b2d0  09 52 30 20 3d 09 70 6f  69 6e 74 65 72 20 74 6f  |.R0 =.pointer to|
0001b2e0  20 7a 65 72 6f 20 74 65  72 6d 69 6e 61 74 65 64  | zero terminated|
0001b2f0  20 66 69 6c 74 65 72 20  6e 61 6d 65 0a 09 52 31  | filter name..R1|
0001b300  20 3d 09 61 64 64 72 65  73 73 20 6f 66 20 3c 66  | =.address of <f|
0001b310  69 6c 74 65 72 20 63 6f  64 65 3d 3e 46 69 6c 74  |ilter code=>Filt|
0001b320  65 72 5f 72 65 63 74 63  6f 64 65 3e 0a 09 52 32  |er_rectcode>..R2|
0001b330  20 3d 09 76 61 6c 75 65  20 74 6f 20 62 65 20 70  | =.value to be p|
0001b340  61 73 73 65 64 20 69 6e  20 52 31 32 0a 09 52 33  |assed in R12..R3|
0001b350  20 3d 09 74 61 73 6b 20  68 61 6e 64 6c 65 20 6f  | =.task handle o|
0001b360  66 20 74 61 73 6b 20 74  6f 20 77 68 69 63 68 20  |f task to which |
0001b370  66 69 6c 74 65 72 20 69  73 20 61 70 70 6c 69 65  |filter is applie|
0001b380  64 20 6f 72 20 30 20 66  6f 72 20 61 6c 6c 20 74  |d or 0 for all t|
0001b390  61 73 6b 73 0a 0a 3c 3d  09 61 6c 6c 20 72 65 67  |asks..<=.all reg|
0001b3a0  69 73 74 65 72 73 20 70  72 65 73 65 72 76 65 64  |isters preserved|
0001b3b0  0a 0a 41 64 64 73 20 61  20 6e 65 77 20 3c 57 69  |..Adds a new <Wi|
0001b3c0  6d 70 5f 47 65 74 52 65  63 74 61 6e 67 6c 65 3e  |mp_GetRectangle>|
0001b3d0  20 70 6f 73 74 2d 66 69  6c 74 65 72 20 74 6f 20  | post-filter to |
0001b3e0  74 68 65 20 6c 69 73 74  20 6f 66 20 70 6f 73 74  |the list of post|
0001b3f0  2d 66 69 6c 74 65 72 73  2e 0a 0a 54 68 65 20 61  |-filters...The a|
0001b400  64 64 72 65 73 73 20 70  6f 69 6e 74 65 64 20 74  |ddress pointed t|
0001b410  6f 20 62 79 20 52 31 20  77 69 6c 6c 20 62 65 20  |o by R1 will be |
0001b420  63 61 6c 6c 65 64 20 77  68 65 6e 65 76 65 72 20  |called whenever |
0001b430  74 68 65 20 74 61 73 6b  20 77 68 6f 27 73 20 68  |the task who's h|
0001b440  61 6e 64 6c 65 20 69 73  20 70 61 73 73 65 64 20  |andle is passed |
0001b450  69 6e 20 52 33 20 63 61  6c 6c 73 20 3c 57 69 6d  |in R3 calls <Wim|
0001b460  70 5f 47 65 74 52 65 63  74 61 6e 67 6c 65 3e 20  |p_GetRectangle> |
0001b470  77 69 74 68 20 52 31 32  20 65 71 75 61 6c 20 74  |with R12 equal t|
0001b480  6f 20 74 68 65 20 76 61  6c 75 65 20 6f 66 20 52  |o the value of R|
0001b490  32 20 77 68 65 6e 20 74  68 69 73 20 53 57 49 20  |2 when this SWI |
0001b4a0  69 73 20 63 61 6c 6c 65  64 2e 0a 0a 2a 4e 6f 74  |is called...*Not|
0001b4b0  65 3a 2a 20 54 68 69 73  20 69 73 20 73 74 69 6c  |e:* This is stil|
0001b4c0  6c 20 6f 6e 6c 79 20 61  20 27 67 75 65 73 73 27  |l only a 'guess'|
0001b4d0  20 61 74 20 74 68 65 20  77 61 79 20 69 74 20 77  | at the way it w|
0001b4e0  6f 72 6b 73 2e 0a 00 00  44 41 54 41 0c 02 00 00  |orks....DATA....|
0001b4f0  46 69 6c 74 65 72 20 57  69 6d 70 5f 47 65 74 52  |Filter Wimp_GetR|
0001b500  65 63 74 61 6e 67 6c 65  20 63 6f 64 65 0a 23 50  |ectangle code.#P|
0001b510  61 72 65 6e 74 20 46 69  6c 74 65 72 5f 52 65 67  |arent Filter_Reg|
0001b520  69 73 74 65 72 52 65 63  74 46 69 6c 74 65 72 0a  |isterRectFilter.|
0001b530  23 57 72 61 70 20 4f 66  66 0a 7b 2a 7d 50 72 65  |#Wrap Off.{*}Pre|
0001b540  3a 7b 2a 7d 0a 3d 3e 09  52 31 20 3d 09 70 6f 69  |:{*}.=>.R1 =.poi|
0001b550  6e 74 65 72 20 74 6f 20  75 73 65 72 20 62 6c 6f  |nter to user blo|
0001b560  63 6b 0a 09 52 31 32 20  3d 09 76 61 6c 75 65 20  |ck..R12 =.value |
0001b570  6f 66 20 52 32 20 77 68  65 6e 20 66 69 6c 74 65  |of R2 when filte|
0001b580  72 20 72 65 67 69 73 74  65 72 65 64 0a 3c 3d 09  |r registered.<=.|
0001b590  61 6c 6c 20 72 65 67 69  73 74 65 72 73 20 70 72  |all registers pr|
0001b5a0  65 73 65 72 76 65 64 0a  0a 59 6f 75 20 73 68 6f  |eserved..You sho|
0001b5b0  75 6c 64 20 6e 6f 74 20  66 69 64 64 6c 65 20 77  |uld not fiddle w|
0001b5c0  69 74 68 20 74 68 65 73  65 20 74 68 69 6e 67 73  |ith these things|
0001b5d0  2c 20 49 20 77 6f 75 6c  64 20 68 61 76 65 20 74  |, I would have t|
0001b5e0  68 6f 75 67 68 74 2e 0a  0a 7b 2a 7d 50 6f 73 74  |hought...{*}Post|
0001b5f0  3a 7b 2a 7d 0a 3d 3e 09  52 30 20 3d 09 30 20 69  |:{*}.=>.R0 =.0 i|
0001b600  66 20 6e 6f 20 6d 6f 72  65 20 74 6f 20 72 65 64  |f no more to red|
0001b610  72 61 77 0a 09 52 31 20  3d 09 70 6f 69 6e 74 65  |raw..R1 =.pointe|
0001b620  72 20 74 6f 20 3c 75 70  64 61 74 65 64 20 75 73  |r to <updated us|
0001b630  65 72 20 62 6c 6f 63 6b  3d 3e 77 69 6d 70 5f 67  |er block=>wimp_g|
0001b640  65 74 72 65 63 74 61 6e  67 6c 65 5f 62 6c 6f 63  |etrectangle_bloc|
0001b650  6b 3e 0a 09 52 31 32 20  3d 09 76 61 6c 75 65 20  |k>..R12 =.value |
0001b660  6f 66 20 52 32 20 77 68  65 6e 20 66 69 6c 74 65  |of R2 when filte|
0001b670  72 20 72 65 67 69 73 74  65 72 65 64 0a 3c 3d 09  |r registered.<=.|
0001b680  61 6c 6c 20 72 65 67 69  73 74 65 72 73 20 70 72  |all registers pr|
0001b690  65 73 65 72 76 65 64 0a  0a 59 6f 75 20 63 61 6e  |eserved..You can|
0001b6a0  20 70 72 6f 62 61 62 6c  79 20 6d 6f 64 69 66 79  | probably modify|
0001b6b0  20 74 68 65 20 75 70 64  61 74 65 64 20 62 6c 6f  | the updated blo|
0001b6c0  63 6b 2c 20 62 75 74 20  52 30 20 61 6e 64 20 52  |ck, but R0 and R|
0001b6d0  31 20 73 68 6f 75 6c 64  20 70 72 6f 62 61 62 6c  |1 should probabl|
0001b6e0  79 20 72 65 6d 61 69 6e  20 61 73 20 70 61 73 73  |y remain as pass|
0001b6f0  65 64 2e 0a 44 41 54 41  f1 01 00 00 46 69 6c 74  |ed..DATA....Filt|
0001b700  65 72 5f 44 65 52 65 67  69 73 74 65 72 50 6f 73  |er_DeRegisterPos|
0001b710  74 49 63 6f 6e 46 69 6c  74 65 72 0a 23 50 61 72  |tIconFilter.#Par|
0001b720  65 6e 74 20 46 69 6c 74  65 72 5f 0a 3d 3e 09 52  |ent Filter_.=>.R|
0001b730  30 20 3d 09 70 6f 69 6e  74 65 72 20 74 6f 20 7a  |0 =.pointer to z|
0001b740  65 72 6f 20 74 65 72 6d  69 6e 61 74 65 64 20 66  |ero terminated f|
0001b750  69 6c 74 65 72 20 6e 61  6d 65 0a 09 52 31 20 3d  |ilter name..R1 =|
0001b760  09 61 64 64 72 65 73 73  73 20 6f 66 20 3c 66 69  |.addresss of <fi|
0001b770  6c 74 65 72 20 63 6f 64  65 3d 3e 46 69 6c 74 65  |lter code=>Filte|
0001b780  72 5f 69 63 6f 6e 63 6f  64 65 3e 0a 09 52 32 20  |r_iconcode>..R2 |
0001b790  3d 09 76 61 6c 75 65 20  74 6f 20 62 65 20 70 61  |=.value to be pa|
0001b7a0  73 73 65 64 20 69 6e 20  52 31 32 0a 09 52 33 20  |ssed in R12..R3 |
0001b7b0  3d 09 74 61 73 6b 20 68  61 6e 64 6c 65 20 6f 66  |=.task handle of|
0001b7c0  20 74 61 73 6b 20 74 6f  20 77 68 69 63 68 20 66  | task to which f|
0001b7d0  69 6c 74 65 72 20 77 61  73 20 61 70 70 6c 69 65  |ilter was applie|
0001b7e0  64 0a 09 0a 3c 3d 09 61  6c 6c 20 72 65 67 69 73  |d...<=.all regis|
0001b7f0  74 65 72 73 20 70 72 65  73 65 72 76 65 64 0a 0a  |ters preserved..|
0001b800  54 68 69 73 20 53 57 49  20 72 65 6d 6f 76 65 73  |This SWI removes|
0001b810  20 61 20 3c 57 69 6d 70  5f 47 65 74 52 65 63 74  | a <Wimp_GetRect|
0001b820  61 6e 67 6c 65 3e 20 69  63 6f 6e 20 70 6c 6f 74  |angle> icon plot|
0001b830  74 69 6e 67 20 70 6f 73  74 2d 66 69 6c 74 65 72  |ting post-filter|
0001b840  20 66 72 6f 6d 20 74 68  65 20 6c 69 73 74 2e 0a  | from the list..|
0001b850  0a 4e 6f 74 65 3a 20 41  6c 6c 20 72 65 67 69 73  |.Note: All regis|
0001b860  74 65 72 73 20 6d 75 73  74 20 62 65 20 74 68 65  |ters must be the|
0001b870  20 73 61 6d 65 20 61 73  20 74 68 6f 73 65 20 70  | same as those p|
0001b880  61 73 73 65 64 20 74 6f  20 3c 46 69 6c 74 65 72  |assed to <Filter|
0001b890  5f 52 65 67 69 73 74 65  72 50 6f 73 74 49 63 6f  |_RegisterPostIco|
0001b8a0  6e 46 69 6c 74 65 72 3e  2e 0a 0a 2a 4e 6f 74 65  |nFilter>...*Note|
0001b8b0  3a 2a 20 54 68 69 73 20  69 73 20 73 74 69 6c 6c  |:* This is still|
0001b8c0  20 6f 6e 6c 79 20 61 20  27 67 75 65 73 73 27 20  | only a 'guess' |
0001b8d0  61 74 20 74 68 65 20 77  61 79 20 69 74 20 77 6f  |at the way it wo|
0001b8e0  72 6b 73 2e 0a 00 00 00  44 41 54 41 8f 02 00 00  |rks.....DATA....|
0001b8f0  46 69 6c 74 65 72 5f 52  65 67 69 73 74 65 72 50  |Filter_RegisterP|
0001b900  6f 73 74 49 63 6f 6e 46  69 6c 74 65 72 0a 23 50  |ostIconFilter.#P|
0001b910  61 72 65 6e 74 20 46 69  6c 74 65 72 5f 0a 3d 3e  |arent Filter_.=>|
0001b920  09 52 30 20 3d 09 70 6f  69 6e 74 65 72 20 74 6f  |.R0 =.pointer to|
0001b930  20 7a 65 72 6f 20 74 65  72 6d 69 6e 61 74 65 64  | zero terminated|
0001b940  20 66 69 6c 74 65 72 20  6e 61 6d 65 0a 09 52 31  | filter name..R1|
0001b950  20 3d 09 61 64 64 72 65  73 73 20 6f 66 20 3c 66  | =.address of <f|
0001b960  69 6c 74 65 72 20 63 6f  64 65 3d 3e 46 69 6c 74  |ilter code=>Filt|
0001b970  65 72 5f 69 63 6f 6e 63  6f 64 65 3e 0a 09 52 32  |er_iconcode>..R2|
0001b980  20 3d 09 76 61 6c 75 65  20 74 6f 20 62 65 20 70  | =.value to be p|
0001b990  61 73 73 65 64 20 69 6e  20 52 31 32 0a 09 52 33  |assed in R12..R3|
0001b9a0  20 3d 09 74 61 73 6b 20  68 61 6e 64 6c 65 20 6f  | =.task handle o|
0001b9b0  66 20 74 61 73 6b 20 74  6f 20 77 68 69 63 68 20  |f task to which |
0001b9c0  66 69 6c 74 65 72 20 69  73 20 61 70 70 6c 69 65  |filter is applie|
0001b9d0  64 20 6f 72 20 30 20 66  6f 72 20 61 6c 6c 20 74  |d or 0 for all t|
0001b9e0  61 73 6b 73 0a 0a 3c 3d  09 61 6c 6c 20 72 65 67  |asks..<=.all reg|
0001b9f0  69 73 74 65 72 73 20 70  72 65 73 65 72 76 65 64  |isters preserved|
0001ba00  0a 0a 41 64 64 73 20 61  20 6e 65 77 20 3c 57 69  |..Adds a new <Wi|
0001ba10  6d 70 5f 47 65 74 52 65  63 74 61 6e 67 6c 65 3e  |mp_GetRectangle>|
0001ba20  20 69 63 6f 6e 20 70 6c  6f 74 74 69 6e 67 20 70  | icon plotting p|
0001ba30  6f 73 74 2d 66 69 6c 74  65 72 20 74 6f 20 74 68  |ost-filter to th|
0001ba40  65 20 6c 69 73 74 20 6f  66 20 70 6f 73 74 2d 66  |e list of post-f|
0001ba50  69 6c 74 65 72 73 2e 0a  0a 54 68 65 20 61 64 64  |ilters...The add|
0001ba60  72 65 73 73 20 70 6f 69  6e 74 65 64 20 74 6f 20  |ress pointed to |
0001ba70  62 79 20 52 31 20 77 69  6c 6c 20 62 65 20 63 61  |by R1 will be ca|
0001ba80  6c 6c 65 64 20 77 68 65  6e 65 76 65 72 20 74 68  |lled whenever th|
0001ba90  65 20 74 61 73 6b 20 77  68 6f 27 73 20 68 61 6e  |e task who's han|
0001baa0  64 6c 65 20 69 73 20 70  61 73 73 65 64 20 69 6e  |dle is passed in|
0001bab0  20 52 33 20 63 61 6c 6c  73 20 3c 57 69 6d 70 5f  | R3 calls <Wimp_|
0001bac0  47 65 74 52 65 63 74 61  6e 67 6c 65 3e 20 61 6e  |GetRectangle> an|
0001bad0  64 20 6a 75 73 74 20 61  66 74 65 72 20 74 68 65  |d just after the|
0001bae0  20 77 69 6e 64 6f 77 73  20 69 63 6f 6e 73 20 68  | windows icons h|
0001baf0  61 76 65 20 62 65 65 6e  20 70 6c 6f 74 74 65 64  |ave been plotted|
0001bb00  20 77 69 74 68 20 52 31  32 20 65 71 75 61 6c 20  | with R12 equal |
0001bb10  74 6f 20 74 68 65 20 76  61 6c 75 65 20 6f 66 20  |to the value of |
0001bb20  52 32 20 77 68 65 6e 20  74 68 69 73 20 53 57 49  |R2 when this SWI|
0001bb30  20 69 73 20 63 61 6c 6c  65 64 2e 0a 0a 2a 4e 6f  | is called...*No|
0001bb40  74 65 3a 2a 20 54 68 69  73 20 69 73 20 73 74 69  |te:* This is sti|
0001bb50  6c 6c 20 6f 6e 6c 79 20  61 20 27 67 75 65 73 73  |ll only a 'guess|
0001bb60  27 20 61 74 20 74 68 65  20 77 61 79 20 69 74 20  |' at the way it |
0001bb70  77 6f 72 6b 73 2e 0a 00  44 41 54 41 db 01 00 00  |works...DATA....|
0001bb80  46 69 6c 74 65 72 5f 52  65 67 69 73 74 65 72 43  |Filter_RegisterC|
0001bb90  6f 70 79 46 69 6c 74 65  72 0a 23 50 61 72 65 6e  |opyFilter.#Paren|
0001bba0  74 20 46 69 6c 74 65 72  5f 0a 3d 3e 09 52 30 20  |t Filter_.=>.R0 |
0001bbb0  3d 09 70 6f 69 6e 74 65  72 20 74 6f 20 7a 65 72  |=.pointer to zer|
0001bbc0  6f 20 74 65 72 6d 69 6e  61 74 65 64 20 66 69 6c  |o terminated fil|
0001bbd0  74 65 72 20 6e 61 6d 65  0a 09 52 31 20 3d 09 61  |ter name..R1 =.a|
0001bbe0  64 64 72 65 73 73 20 6f  66 20 3c 66 69 6c 74 65  |ddress of <filte|
0001bbf0  72 20 63 6f 64 65 3d 3e  46 69 6c 74 65 72 5f 63  |r code=>Filter_c|
0001bc00  6f 70 79 63 6f 64 65 3e  0a 09 52 32 20 3d 09 76  |opycode>..R2 =.v|
0001bc10  61 6c 75 65 20 74 6f 20  62 65 20 70 61 73 73 65  |alue to be passe|
0001bc20  64 20 69 6e 20 52 31 32  0a 0a 3c 3d 09 61 6c 6c  |d in R12..<=.all|
0001bc30  20 72 65 67 69 73 74 65  72 73 20 70 72 65 73 65  | registers prese|
0001bc40  72 76 65 64 0a 0a 41 64  64 73 20 61 20 6e 65 77  |rved..Adds a new|
0001bc50  20 3c 57 69 6d 70 5f 42  6c 6f 63 6b 43 6f 70 79  | <Wimp_BlockCopy|
0001bc60  3e 20 70 72 65 2d 66 69  6c 74 65 72 20 74 6f 20  |> pre-filter to |
0001bc70  74 68 65 20 6c 69 73 74  20 6f 66 20 70 72 65 2d  |the list of pre-|
0001bc80  66 69 6c 74 65 72 73 2e  0a 0a 54 68 65 20 61 64  |filters...The ad|
0001bc90  64 72 65 73 73 20 70 6f  69 6e 74 65 64 20 74 6f  |dress pointed to|
0001bca0  20 62 79 20 52 31 20 77  69 6c 6c 20 62 65 20 63  | by R1 will be c|
0001bcb0  61 6c 6c 65 64 20 77 68  65 6e 65 76 65 72 20 61  |alled whenever a|
0001bcc0  20 74 61 73 6b 20 63 61  6c 6c 73 20 3c 57 69 6d  | task calls <Wim|
0001bcd0  70 5f 42 6c 6f 63 6b 43  6f 70 79 3e 20 77 69 74  |p_BlockCopy> wit|
0001bce0  68 20 52 31 32 20 65 71  75 61 6c 20 74 6f 20 74  |h R12 equal to t|
0001bcf0  68 65 20 76 61 6c 75 65  20 6f 66 20 52 32 20 77  |he value of R2 w|
0001bd00  68 65 6e 20 74 68 69 73  20 53 57 49 20 69 73 20  |hen this SWI is |
0001bd10  63 61 6c 6c 65 64 2e 0a  0a 2a 4e 6f 74 65 3a 2a  |called...*Note:*|
0001bd20  20 54 68 69 73 20 69 73  20 73 74 69 6c 6c 20 6f  | This is still o|
0001bd30  6e 6c 79 20 61 20 27 67  75 65 73 73 27 20 61 74  |nly a 'guess' at|
0001bd40  20 74 68 65 20 77 61 79  20 69 74 20 77 6f 72 6b  | the way it work|
0001bd50  73 2e 0a 00 44 41 54 41  a1 01 00 00 46 69 6c 74  |s...DATA....Filt|
0001bd60  65 72 5f 44 65 52 65 67  69 73 74 65 72 43 6f 70  |er_DeRegisterCop|
0001bd70  79 46 69 6c 74 65 72 0a  23 50 61 72 65 6e 74 20  |yFilter.#Parent |
0001bd80  46 69 6c 74 65 72 5f 0a  3d 3e 09 52 30 20 3d 09  |Filter_.=>.R0 =.|
0001bd90  70 6f 69 6e 74 65 72 20  74 6f 20 7a 65 72 6f 20  |pointer to zero |
0001bda0  74 65 72 6d 69 6e 61 74  65 64 20 66 69 6c 74 65  |terminated filte|
0001bdb0  72 20 6e 61 6d 65 0a 09  52 31 20 3d 09 61 64 64  |r name..R1 =.add|
0001bdc0  72 65 73 73 73 20 6f 66  20 3c 66 69 6c 74 65 72  |resss of <filter|
0001bdd0  20 63 6f 64 65 3d 3e 46  69 6c 74 65 72 5f 63 6f  | code=>Filter_co|
0001bde0  70 79 63 6f 64 65 3e 0a  09 52 32 20 3d 09 76 61  |pycode>..R2 =.va|
0001bdf0  6c 75 65 20 74 6f 20 62  65 20 70 61 73 73 65 64  |lue to be passed|
0001be00  20 69 6e 20 52 31 32 0a  09 0a 3c 3d 09 61 6c 6c  | in R12...<=.all|
0001be10  20 72 65 67 69 73 74 65  72 73 20 70 72 65 73 65  | registers prese|
0001be20  72 76 65 64 0a 0a 54 68  69 73 20 53 57 49 20 72  |rved..This SWI r|
0001be30  65 6d 6f 76 65 73 20 61  20 3c 57 69 6d 70 5f 42  |emoves a <Wimp_B|
0001be40  6c 6f 63 6b 43 6f 70 79  3e 20 70 72 65 2d 66 69  |lockCopy> pre-fi|
0001be50  6c 74 65 72 20 66 72 6f  6d 20 74 68 65 20 6c 69  |lter from the li|
0001be60  73 74 2e 0a 0a 4e 6f 74  65 3a 20 41 6c 6c 20 72  |st...Note: All r|
0001be70  65 67 69 73 74 65 72 73  20 6d 75 73 74 20 62 65  |egisters must be|
0001be80  20 74 68 65 20 73 61 6d  65 20 61 73 20 74 68 6f  | the same as tho|
0001be90  73 65 20 70 61 73 73 65  64 20 74 6f 20 3c 46 69  |se passed to <Fi|
0001bea0  6c 74 65 72 5f 52 65 67  69 73 74 65 72 43 6f 70  |lter_RegisterCop|
0001beb0  79 46 69 6c 74 65 72 3e  2e 0a 0a 2a 4e 6f 74 65  |yFilter>...*Note|
0001bec0  3a 2a 20 54 68 69 73 20  69 73 20 73 74 69 6c 6c  |:* This is still|
0001bed0  20 6f 6e 6c 79 20 61 20  27 67 75 65 73 73 27 20  | only a 'guess' |
0001bee0  61 74 20 74 68 65 20 77  61 79 20 69 74 20 77 6f  |at the way it wo|
0001bef0  72 6b 73 2e 0a 00 00 00  44 41 54 41 6f 01 00 00  |rks.....DATAo...|
0001bf00  46 69 6c 74 65 72 20 57  69 6d 70 5f 47 65 74 52  |Filter Wimp_GetR|
0001bf10  65 63 74 61 6e 67 6c 65  20 69 63 6f 6e 20 70 6c  |ectangle icon pl|
0001bf20  6f 74 74 69 6e 67 20 63  6f 64 65 0a 23 50 61 72  |otting code.#Par|
0001bf30  65 6e 74 20 46 69 6c 74  65 72 5f 52 65 67 69 73  |ent Filter_Regis|
0001bf40  74 65 72 50 6f 73 74 49  63 6f 6e 46 69 6c 74 65  |terPostIconFilte|
0001bf50  72 0a 23 57 72 61 70 20  4f 66 66 0a 7b 2a 7d 50  |r.#Wrap Off.{*}P|
0001bf60  6f 73 74 3a 7b 2a 7d 0a  3d 3e 09 52 30 20 3d 09  |ost:{*}.=>.R0 =.|
0001bf70  30 20 69 66 20 6e 6f 20  6d 6f 72 65 20 74 6f 20  |0 if no more to |
0001bf80  72 65 64 72 61 77 0a 09  52 31 20 3d 09 70 6f 69  |redraw..R1 =.poi|
0001bf90  6e 74 65 72 20 74 6f 20  3c 75 70 64 61 74 65 64  |nter to <updated|
0001bfa0  20 75 73 65 72 20 62 6c  6f 63 6b 3d 3e 77 69 6d  | user block=>wim|
0001bfb0  70 5f 67 65 74 72 65 63  74 61 6e 67 6c 65 5f 62  |p_getrectangle_b|
0001bfc0  6c 6f 63 6b 3e 0a 09 52  31 32 20 3d 09 76 61 6c  |lock>..R12 =.val|
0001bfd0  75 65 20 6f 66 20 52 32  20 77 68 65 6e 20 66 69  |ue of R2 when fi|
0001bfe0  6c 74 65 72 20 72 65 67  69 73 74 65 72 65 64 0a  |lter registered.|
0001bff0  3c 3d 09 61 6c 6c 20 72  65 67 69 73 74 65 72 73  |<=.all registers|
0001c000  20 70 72 65 73 65 72 76  65 64 0a 0a 59 6f 75 20  | preserved..You |
0001c010  63 61 6e 20 70 72 6f 62  61 62 6c 79 20 6d 6f 64  |can probably mod|
0001c020  69 66 79 20 74 68 65 20  75 70 64 61 74 65 64 20  |ify the updated |
0001c030  62 6c 6f 63 6b 2c 20 62  75 74 20 52 30 20 61 6e  |block, but R0 an|
0001c040  64 20 52 31 20 73 68 6f  75 6c 64 20 70 72 6f 62  |d R1 should prob|
0001c050  61 62 6c 79 20 72 65 6d  61 69 6e 20 61 73 20 70  |ably remain as p|
0001c060  61 73 73 65 64 2e 0a 00  44 41 54 41 eb 00 00 00  |assed...DATA....|
0001c070  46 69 6c 74 65 72 20 57  69 6d 70 5f 42 6c 6f 63  |Filter Wimp_Bloc|
0001c080  6b 43 6f 70 79 20 63 6f  64 65 0a 23 50 61 72 65  |kCopy code.#Pare|
0001c090  6e 74 20 46 69 6c 74 65  72 5f 52 65 67 69 73 74  |nt Filter_Regist|
0001c0a0  65 72 43 6f 70 79 46 69  6c 74 65 72 0a 23 57 72  |erCopyFilter.#Wr|
0001c0b0  61 70 20 4f 66 66 0a 3d  3e 09 53 65 65 20 3c 57  |ap Off.=>.See <W|
0001c0c0  69 6d 70 5f 42 6c 6f 63  6b 43 6f 70 79 3e 0a 09  |imp_BlockCopy>..|
0001c0d0  52 31 32 20 3d 09 76 61  6c 75 65 20 6f 66 20 52  |R12 =.value of R|
0001c0e0  32 20 77 68 65 6e 20 66  69 6c 74 65 72 20 72 65  |2 when filter re|
0001c0f0  67 69 73 74 65 72 65 64  0a 0a 3c 3d 09 61 6c 6c  |gistered..<=.all|
0001c100  20 72 65 67 69 73 74 65  72 73 20 70 72 65 73 65  | registers prese|
0001c110  72 76 65 64 0a 0a 54 68  69 73 20 63 6f 64 65 20  |rved..This code |
0001c120  69 73 20 63 61 6c 6c 65  64 20 62 65 66 6f 72 65  |is called before|
0001c130  20 74 68 65 20 73 74 61  6e 64 61 72 64 20 57 69  | the standard Wi|
0001c140  6d 70 5f 42 6c 6f 63 6b  43 6f 70 79 20 63 6f 64  |mp_BlockCopy cod|
0001c150  65 2e 0a 00 44 49 52 24  94 00 00 00 94 00 00 00  |e...DIR$........|
0001c160  e8 c1 01 00 47 fd ff ff  6f 41 15 91 41 00 00 00  |....G...oA..A...|
0001c170  13 00 00 00 00 00 00 00  21 52 6f 6f 74 00 00 00  |........!Root...|
0001c180  2c c2 01 00 48 ff ff ff  25 62 6d 27 1e 01 00 00  |,...H...%bm'....|
0001c190  33 00 00 00 00 00 00 00  52 65 67 69 73 74 65 72  |3.......Register|
0001c1a0  00 00 00 00 4c c3 01 00  48 ff ff ff af 69 6d 27  |....L...H....im'|
0001c1b0  2b 01 00 00 33 00 00 00  00 00 00 00 44 65 52 65  |+...3.......DeRe|
0001c1c0  67 69 73 74 65 72 00 00  78 c4 01 00 48 fd ff ff  |gister..x...H...|
0001c1d0  2f 8a 59 25 5a 06 00 00  13 00 00 00 00 00 00 00  |/.Y%Z...........|
0001c1e0  72 6f 75 74 69 6e 65 00  44 41 54 41 41 00 00 00  |routine.DATAA...|
0001c1f0  46 72 65 65 0a 23 50 61  72 65 6e 74 20 21 52 6f  |Free.#Parent !Ro|
0001c200  6f 74 0a 23 50 72 65 66  69 78 20 46 72 65 65 5f  |ot.#Prefix Free_|
0001c210  0a 3c 52 65 67 69 73 74  65 72 3e 0a 3c 44 65 52  |.<Register>.<DeR|
0001c220  65 67 69 73 74 65 72 3e  0a 00 00 00 44 41 54 41  |egister>....DATA|
0001c230  1e 01 00 00 46 72 65 65  5f 52 65 67 69 73 74 65  |....Free_Registe|
0001c240  72 20 20 28 26 34 34 34  43 30 29 0a 23 50 61 72  |r  (&444C0).#Par|
0001c250  65 6e 74 20 46 72 65 65  5f 0a 3d 3e 09 52 30 20  |ent Free_.=>.R0 |
0001c260  3d 09 3c 66 69 6c 69 6e  67 20 73 79 73 74 65 6d  |=.<filing system|
0001c270  3d 3e 4f 53 3a 66 73 79  73 5f 69 64 65 6e 74 3e  |=>OS:fsys_ident>|
0001c280  0a 09 52 31 20 3d 09 61  64 64 72 65 73 73 20 6f  |..R1 =.address o|
0001c290  66 20 3c 72 6f 75 74 69  6e 65 3d 3e 46 72 65 65  |f <routine=>Free|
0001c2a0  5f 72 6f 75 74 69 6e 65  3e 20 74 6f 20 67 65 74  |_routine> to get|
0001c2b0  20 66 72 65 65 20 73 70  61 63 65 20 69 6e 66 6f  | free space info|
0001c2c0  0a 09 52 32 20 3d 09 52  31 32 20 6f 6e 20 65 6e  |..R2 =.R12 on en|
0001c2d0  74 72 79 20 74 6f 20 72  6f 75 74 69 6e 65 0a 0a  |try to routine..|
0001c2e0  54 68 69 73 20 53 57 49  20 69 73 20 75 73 65 64  |This SWI is used|
0001c2f0  20 74 6f 20 70 72 6f 76  69 64 65 20 74 68 65 20  | to provide the |
0001c300  6d 75 6c 74 69 2d 74 61  73 6b 69 6e 67 20 46 72  |multi-tasking Fr|
0001c310  65 65 20 64 69 73 70 6c  61 79 2e 20 52 65 6d 6f  |ee display. Remo|
0001c320  76 65 20 74 68 65 73 65  20 68 61 6e 64 6c 65 72  |ve these handler|
0001c330  73 20 77 69 74 68 20 3c  46 72 65 65 5f 44 65 52  |s with <Free_DeR|
0001c340  65 67 69 73 74 65 72 3e  2e 0a 00 00 44 41 54 41  |egister>....DATA|
0001c350  2b 01 00 00 46 72 65 65  5f 44 65 52 65 67 69 73  |+...Free_DeRegis|
0001c360  74 65 72 20 20 28 26 34  34 34 43 31 29 0a 23 50  |ter  (&444C1).#P|
0001c370  61 72 65 6e 74 20 46 72  65 65 5f 0a 3d 3e 09 52  |arent Free_.=>.R|
0001c380  30 20 3d 09 3c 66 69 6c  69 6e 67 20 73 79 73 74  |0 =.<filing syst|
0001c390  65 6d 3d 3e 4f 53 3a 66  73 79 73 5f 69 64 65 6e  |em=>OS:fsys_iden|
0001c3a0  74 3e 0a 09 52 31 20 3d  09 61 64 64 72 65 73 73  |t>..R1 =.address|
0001c3b0  20 6f 66 20 3c 72 6f 75  74 69 6e 65 3d 3e 46 72  | of <routine=>Fr|
0001c3c0  65 65 5f 72 6f 75 74 69  6e 65 3e 20 74 6f 20 67  |ee_routine> to g|
0001c3d0  65 74 20 66 72 65 65 20  73 70 61 63 65 20 69 6e  |et free space in|
0001c3e0  66 6f 0a 09 52 32 20 3d  09 72 31 32 20 6f 6e 20  |fo..R2 =.r12 on |
0001c3f0  65 6e 74 72 79 20 74 6f  20 72 6f 75 74 69 6e 65  |entry to routine|
0001c400  0a 0a 54 68 69 73 20 53  57 49 20 69 73 20 75 73  |..This SWI is us|
0001c410  65 64 20 74 6f 20 72 65  6d 6f 76 65 20 74 68 65  |ed to remove the|
0001c420  20 73 75 70 70 6f 72 74  20 66 6f 72 20 74 68 65  | support for the|
0001c430  20 6d 75 6c 74 69 2d 74  61 73 6b 69 6e 67 20 46  | multi-tasking F|
0001c440  72 65 65 20 64 69 73 70  6c 61 79 20 70 72 65 76  |ree display prev|
0001c450  69 6f 75 73 6c 79 20 69  6e 73 74 61 6c 6c 65 64  |iously installed|
0001c460  20 77 69 74 68 20 3c 46  72 65 65 5f 52 65 67 69  | with <Free_Regi|
0001c470  73 74 65 72 3e 2e 0a 00  44 41 54 41 5a 06 00 00  |ster>...DATAZ...|
0001c480  46 72 65 65 20 72 6f 75  74 69 6e 65 20 65 6e 74  |Free routine ent|
0001c490  72 79 0a 23 50 61 72 65  6e 74 20 46 72 65 65 5f  |ry.#Parent Free_|
0001c4a0  52 65 67 69 73 74 65 72  0a 3d 3e 09 52 30 20 3d  |Register.=>.R0 =|
0001c4b0  09 30 20 28 4e 6f 4f 70  29 0a 09 20 09 31 20 28  |.0 (NoOp).. .1 (|
0001c4c0  3c 47 65 74 46 53 4e 61  6d 65 3d 3e 2e 31 3e 29  |<GetFSName=>.1>)|
0001c4d0  0a 09 20 09 32 20 28 3c  47 65 74 46 72 65 65 53  |.. .2 (<GetFreeS|
0001c4e0  70 61 63 65 3d 3e 2e 32  3e 29 0a 09 20 09 33 20  |pace=>.2>).. .3 |
0001c4f0  28 3c 43 6f 6d 70 61 72  65 44 65 76 69 63 65 3d  |(<CompareDevice=|
0001c500  3e 2e 33 3e 29 0a 09 6f  74 68 65 72 73 20 64 65  |>.3>)..others de|
0001c510  70 65 6e 64 61 6e 74 20  6f 6e 20 52 30 0a 0a 54  |pendant on R0..T|
0001c520  68 65 20 72 6f 75 74 69  6e 65 20 77 69 6c 6c 20  |he routine will |
0001c530  62 65 20 63 61 6c 6c 65  64 20 69 6e 20 55 73 65  |be called in Use|
0001c540  72 20 6d 6f 64 65 20 77  69 74 68 20 61 20 73 74  |r mode with a st|
0001c550  61 63 6b 20 63 6f 6e 73  69 73 74 69 6e 67 20 2f  |ack consisting /|
0001c560  6f 6e 6c 79 2f 20 6f 66  20 74 68 65 20 72 65 74  |only/ of the ret|
0001c570  75 72 6e 20 61 64 64 72  65 73 73 20 28 6e 6f 20  |urn address (no |
0001c580  6f 74 68 65 72 20 75 73  65 20 73 68 6f 75 6c 64  |other use should|
0001c590  20 62 65 20 6d 61 64 65  20 6f 66 20 69 74 29 2e  | be made of it).|
0001c5a0  20 54 68 65 20 72 6f 75  74 69 6e 65 20 63 61 6e  | The routine can|
0001c5b0  20 65 69 74 68 65 72 3a  0a 0a 8f 09 63 6f 6e 73  | either:....cons|
0001c5c0  74 72 75 63 74 20 61 20  6e 65 77 20 73 74 61 63  |truct a new stac|
0001c5d0  6b 2e 0a 8f 09 75 73 65  20 74 68 65 20 53 56 43  |k....use the SVC|
0001c5e0  20 73 74 61 63 6b 20 62  79 20 63 61 6c 6c 69 6e  | stack by callin|
0001c5f0  67 20 3c 4f 53 3a 4f 53  5f 45 6e 74 65 72 4f 53  |g <OS:OS_EnterOS|
0001c600  3e 2c 20 72 65 6d 65 6d  62 65 72 69 6e 67 20 74  |>, remembering t|
0001c610  6f 20 72 65 74 75 72 6e  20 74 6f 20 55 73 65 72  |o return to User|
0001c620  20 6d 6f 64 65 20 62 65  66 6f 72 65 20 72 65 74  | mode before ret|
0001c630  75 72 6e 69 6e 67 2e 0a  8f 09 64 6f 20 61 6c 6c  |urning....do all|
0001c640  20 74 68 65 20 68 61 72  64 20 77 6f 72 6b 20 77  | the hard work w|
0001c650  69 74 68 20 61 20 53 57  49 20 28 50 52 4d 20 73  |ith a SWI (PRM s|
0001c660  75 67 67 65 73 74 73 20  3c 4f 53 5f 46 53 43 6f  |uggests <OS_FSCo|
0001c670  6e 74 72 6f 6c 20 34 39  3d 3e 4f 53 3a 4f 53 5f  |ntrol 49=>OS:OS_|
0001c680  46 53 43 6f 6e 74 72 6f  6c 34 39 3e 20 66 6f 72  |FSControl49> for|
0001c690  20 72 65 61 73 6f 6e 20  32 2c 20 62 75 74 20 74  | reason 2, but t|
0001c6a0  68 69 73 20 73 74 69 6c  6c 20 61 6c 74 65 72 73  |his still alters|
0001c6b0  20 72 65 67 69 73 74 65  72 73 20 74 68 61 74 20  | registers that |
0001c6c0  6d 75 73 74 20 62 65 20  70 72 65 73 65 72 76 65  |must be preserve|
0001c6d0  64 20 73 6f 6d 65 77 68  65 72 65 2e 2e 2e 29 0a  |d somewhere...).|
0001c6e0  23 53 75 62 70 61 67 65  20 31 0a 46 72 65 65 20  |#Subpage 1.Free |
0001c6f0  47 65 74 46 53 4e 61 6d  65 20 28 31 29 0a 3d 3e  |GetFSName (1).=>|
0001c700  09 52 30 20 3d 09 31 20  28 47 65 74 46 53 4e 61  |.R0 =.1 (GetFSNa|
0001c710  6d 65 29 0a 09 52 31 20  3d 09 3c 46 53 20 6e 75  |me)..R1 =.<FS nu|
0001c720  6d 62 65 72 3d 3e 4f 53  3a 66 73 79 73 5f 69 64  |mber=>OS:fsys_id|
0001c730  65 6e 74 3e 0a 09 52 32  20 3d 09 70 6f 69 6e 74  |ent>..R2 =.point|
0001c740  65 72 20 74 6f 20 62 75  66 66 65 72 0a 09 52 33  |er to buffer..R3|
0001c750  20 3d 09 70 6f 69 6e 74  65 72 20 74 6f 20 64 65  | =.pointer to de|
0001c760  76 69 63 65 20 6f 72 20  49 44 0a 3c 3d 09 52 30  |vice or ID.<=.R0|
0001c770  20 3d 09 6c 65 6e 67 74  68 20 6f 66 20 6e 61 6d  | =.length of nam|
0001c780  65 0a 09 52 31 2d 52 33  20 70 72 65 73 65 72 76  |e..R1-R3 preserv|
0001c790  65 64 0a 0a 59 6f 75 20  73 68 6f 75 6c 64 20 70  |ed..You should p|
0001c7a0  6c 61 63 65 20 74 68 65  20 64 65 76 69 63 65 20  |lace the device |
0001c7b0  6e 61 6d 65 20 61 74 20  52 32 20 61 6e 64 20 74  |name at R2 and t|
0001c7c0  68 65 20 6c 65 6e 67 74  68 20 6f 66 20 74 68 65  |he length of the|
0001c7d0  20 6e 61 6d 65 20 69 6e  20 52 30 2e 0a 23 53 75  | name in R0..#Su|
0001c7e0  62 70 61 67 65 20 32 0a  46 72 65 65 20 47 65 74  |bpage 2.Free Get|
0001c7f0  46 72 65 65 53 70 61 63  65 20 28 32 29 0a 3d 3e  |FreeSpace (2).=>|
0001c800  09 52 30 20 3d 09 32 20  28 47 65 74 46 72 65 65  |.R0 =.2 (GetFree|
0001c810  53 70 61 63 65 29 0a 09  52 31 20 3d 09 3c 46 53  |Space)..R1 =.<FS|
0001c820  20 6e 75 6d 62 65 72 3d  3e 4f 53 3a 66 73 79 73  | number=>OS:fsys|
0001c830  5f 69 64 65 6e 74 3e 0a  09 52 32 20 3d 09 70 6f  |_ident>..R2 =.po|
0001c840  69 6e 74 65 72 20 74 6f  20 33 20 77 6f 72 64 20  |inter to 3 word |
0001c850  62 75 66 66 65 72 0a 09  52 33 20 3d 09 70 6f 69  |buffer..R3 =.poi|
0001c860  6e 74 65 72 20 74 6f 20  64 65 76 69 63 65 20 6f  |nter to device o|
0001c870  72 20 49 44 0a 3c 3d 09  52 30 2d 52 33 20 70 72  |r ID.<=.R0-R3 pr|
0001c880  65 73 65 72 76 65 64 2c  20 52 32 20 62 75 66 66  |eserved, R2 buff|
0001c890  65 72 20 3a 0a 09 20 09  30 20 3d 20 74 6f 74 61  |er :.. .0 = tota|
0001c8a0  6c 20 73 69 7a 65 20 6f  66 20 64 65 76 69 63 65  |l size of device|
0001c8b0  20 28 6f 72 20 30 20 69  66 20 75 6e 63 68 61 6e  | (or 0 if unchan|
0001c8c0  67 65 64 29 0a 09 20 09  34 20 3d 20 66 72 65 65  |ged).. .4 = free|
0001c8d0  20 73 70 61 63 65 20 6f  6e 20 64 65 76 69 63 65  | space on device|
0001c8e0  0a 09 20 09 38 20 3d 20  75 73 65 64 20 73 70 61  |.. .8 = used spa|
0001c8f0  63 65 20 6f 6e 20 64 65  76 69 63 65 0a 0a 54 68  |ce on device..Th|
0001c900  69 73 20 69 73 20 75 73  65 64 20 74 6f 20 66 69  |is is used to fi|
0001c910  6e 64 20 74 68 65 20 66  72 65 65 20 73 70 61 63  |nd the free spac|
0001c920  65 20 6f 6e 20 61 20 64  65 76 69 63 65 2c 20 77  |e on a device, w|
0001c930  68 69 63 68 20 73 68 6f  75 6c 64 20 62 65 20 77  |hich should be w|
0001c940  72 69 74 74 65 6e 20 74  6f 20 74 68 65 20 62 75  |ritten to the bu|
0001c950  66 66 65 72 2e 0a 23 53  75 62 70 61 67 65 20 33  |ffer..#Subpage 3|
0001c960  0a 46 72 65 65 20 43 6f  6d 70 61 72 65 44 65 76  |.Free CompareDev|
0001c970  69 63 65 20 28 33 29 0a  3d 3e 09 52 30 20 3d 09  |ice (3).=>.R0 =.|
0001c980  33 20 28 43 6f 6d 70 61  72 65 44 65 76 69 63 65  |3 (CompareDevice|
0001c990  29 0a 09 52 31 20 3d 09  3c 46 53 20 6e 75 6d 62  |)..R1 =.<FS numb|
0001c9a0  65 72 3d 3e 4f 53 3a 66  73 79 73 5f 69 64 65 6e  |er=>OS:fsys_iden|
0001c9b0  74 3e 0a 09 52 32 20 3d  09 70 6f 69 6e 74 65 72  |t>..R2 =.pointer|
0001c9c0  20 74 6f 20 66 69 6c 65  6e 61 6d 65 0a 09 52 33  | to filename..R3|
0001c9d0  20 3d 09 70 6f 69 6e 74  65 72 20 74 6f 20 64 65  | =.pointer to de|
0001c9e0  76 69 63 65 20 6f 72 20  49 44 0a 09 52 36 20 3d  |vice or ID..R6 =|
0001c9f0  09 70 6f 69 6e 74 65 72  20 74 6f 20 73 70 65 63  |.pointer to spec|
0001ca00  69 61 6c 20 66 69 65 6c  64 0a 3c 3d 09 52 30 2d  |ial field.<=.R0-|
0001ca10  52 33 20 61 6e 64 20 52  36 20 70 72 65 73 65 72  |R3 and R6 preser|
0001ca20  76 65 64 0a 09 5a 20 73  65 74 20 69 66 20 52 32  |ved..Z set if R2|
0001ca30  2c 20 52 36 20 70 6f 69  6e 74 20 74 6f 20 61 20  |, R6 point to a |
0001ca40  66 69 6c 65 20 6f 6e 20  52 33 2e 0a 0a 54 68 69  |file on R3...Thi|
0001ca50  73 20 63 61 6c 6c 20 69  73 20 75 73 65 64 20 74  |s call is used t|
0001ca60  6f 20 63 68 65 63 6b 20  69 66 20 61 20 66 69 6c  |o check if a fil|
0001ca70  65 20 65 78 69 73 74 73  20 6f 6e 20 61 20 70 61  |e exists on a pa|
0001ca80  72 74 69 63 75 6c 61 72  20 64 72 69 76 65 2e 20  |rticular drive. |
0001ca90  41 20 2a 66 61 73 74 2a  20 66 69 6c 69 6e 67 20  |A *fast* filing |
0001caa0  73 79 73 74 65 6d 20 28  52 41 4d 46 53 29 20 69  |system (RAMFS) i|
0001cab0  73 20 61 6c 6c 6f 77 65  64 20 74 6f 20 61 6c 77  |s allowed to alw|
0001cac0  61 79 73 20 72 65 74 75  72 6e 20 5a 20 73 65 74  |ays return Z set|
0001cad0  2e 0a 00 00 44 49 52 24  a4 00 00 00 a4 00 00 00  |....DIR$........|
0001cae0  78 cb 01 00 46 fd ff ff  c6 61 68 db 71 00 00 00  |x...F....ah.q...|
0001caf0  13 00 00 00 00 00 00 00  21 52 6f 6f 74 00 00 00  |........!Root...|
0001cb00  ec cb 01 00 48 ff ff ff  df ad 6c 27 84 02 00 00  |....H.....l'....|
0001cb10  13 00 00 00 00 00 00 00  45 6e 75 6d 65 72 61 74  |........Enumerat|
0001cb20  65 54 61 73 6b 73 00 00  70 ce 01 00 48 ff ff ff  |eTasks..p...H...|
0001cb30  73 86 6c 27 43 01 00 00  13 00 00 00 00 00 00 00  |s.l'C...........|
0001cb40  54 61 73 6b 4e 61 6d 65  46 72 6f 6d 48 61 6e 64  |TaskNameFromHand|
0001cb50  6c 65 00 00 b4 cf 01 00  48 ff ff ff 0e ea 09 28  |le......H......(|
0001cb60  90 02 00 00 13 00 00 00  00 00 00 00 53 68 75 74  |............Shut|
0001cb70  64 6f 77 6e 00 00 00 00  44 41 54 41 71 00 00 00  |down....DATAq...|
0001cb80  54 61 73 6b 4d 61 6e 61  67 65 72 0a 23 50 61 72  |TaskManager.#Par|
0001cb90  65 6e 74 20 21 52 6f 6f  74 3b 20 50 72 65 66 69  |ent !Root; Prefi|
0001cba0  78 20 54 61 73 6b 4d 61  6e 61 67 65 72 5f 3b 20  |x TaskManager_; |
0001cbb0  57 72 61 70 20 6f 66 66  0a 3c 45 6e 75 6d 65 72  |Wrap off.<Enumer|
0001cbc0  61 74 65 54 61 73 6b 73  3e 0a 3c 53 68 75 74 64  |ateTasks>.<Shutd|
0001cbd0  6f 77 6e 3e 0a 3c 54 61  73 6b 4e 61 6d 65 46 72  |own>.<TaskNameFr|
0001cbe0  6f 6d 48 61 6e 64 6c 65  3e 00 00 00 44 41 54 41  |omHandle>...DATA|
0001cbf0  84 02 00 00 54 61 73 6b  4d 61 6e 61 67 65 72 5f  |....TaskManager_|
0001cc00  45 6e 75 6d 65 72 61 74  65 54 61 73 6b 73 20 20  |EnumerateTasks  |
0001cc10  28 26 34 32 36 38 31 29  0a 23 50 61 72 65 6e 74  |(&42681).#Parent|
0001cc20  20 54 61 73 6b 4d 61 6e  61 67 65 72 5f 0a 3d 3e  | TaskManager_.=>|
0001cc30  09 52 30 20 3d 09 30 20  66 6f 72 20 66 69 72 73  |.R0 =.0 for firs|
0001cc40  74 20 63 61 6c 6c 2c 20  6f 72 20 76 61 6c 75 65  |t call, or value|
0001cc50  20 66 72 6f 6d 20 70 72  65 76 69 6f 75 73 0a 09  | from previous..|
0001cc60  52 31 20 3d 09 70 6f 69  6e 74 65 72 20 74 6f 20  |R1 =.pointer to |
0001cc70  62 75 66 66 65 72 0a 09  52 32 20 3d 09 73 69 7a  |buffer..R2 =.siz|
0001cc80  65 20 6f 66 20 62 75 66  66 65 72 0a 0a 3c 3d 09  |e of buffer..<=.|
0001cc90  52 30 20 3d 09 76 61 6c  75 65 20 74 6f 20 75 73  |R0 =.value to us|
0001cca0  65 20 66 6f 72 20 6e 65  78 74 20 63 61 6c 6c 2c  |e for next call,|
0001ccb0  20 6f 72 20 5c 3c 20 30  20 66 6f 72 20 6e 6f 20  | or \< 0 for no |
0001ccc0  6d 6f 72 65 0a 09 52 31  20 3d 09 31 73 74 20 62  |more..R1 =.1st b|
0001ccd0  79 74 65 20 6e 6f 74 20  75 73 65 64 0a 09 52 32  |yte not used..R2|
0001cce0  20 3d 09 62 79 74 65 73  20 6e 6f 74 20 75 73 65  | =.bytes not use|
0001ccf0  64 0a 0a 54 68 69 73 20  53 57 49 20 72 65 74 75  |d..This SWI retu|
0001cd00  72 6e 73 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |rns information |
0001cd10  61 62 6f 75 74 20 74 68  65 20 72 75 6e 6e 69 6e  |about the runnin|
0001cd20  67 20 74 61 73 6b 73 2e  20 28 53 61 6d 65 20 6c  |g tasks. (Same l|
0001cd30  69 73 74 20 61 73 20 54  61 73 6b 4d 61 6e 61 67  |ist as TaskManag|
0001cd40  65 72 20 64 69 73 70 6c  61 79 73 2e 29 20 46 6f  |er displays.) Fo|
0001cd50  72 20 65 61 63 68 20 74  61 73 6b 20 61 20 34 20  |r each task a 4 |
0001cd60  77 6f 72 64 20 62 6c 6f  63 6b 20 69 73 20 72 65  |word block is re|
0001cd70  74 75 72 6e 65 64 20 3a  0a 0a 23 54 61 62 0a 30  |turned :..#Tab.0|
0001cd80  09 54 61 73 6b 20 68 61  6e 64 6c 65 0a 34 09 54  |.Task handle.4.T|
0001cd90  61 73 6b 20 6e 61 6d 65  20 28 77 68 69 63 68 20  |ask name (which |
0001cda0  73 68 6f 75 6c 64 20 62  65 20 63 6f 70 69 65 64  |should be copied|
0001cdb0  20 66 6f 72 20 6b 65 65  70 73 61 6b 65 73 29 0a  | for keepsakes).|
0001cdc0  38 09 53 6c 6f 74 20 73  69 7a 65 20 28 4b 29 0a  |8.Slot size (K).|
0001cdd0  31 32 09 3c 46 6c 61 67  73 3d 3e 2e 66 6c 61 67  |12.<Flags=>.flag|
0001cde0  73 3e 0a 23 53 75 62 70  61 67 65 20 66 6c 61 67  |s>.#Subpage flag|
0001cdf0  73 0a 54 61 73 6b 20 66  6c 61 67 73 0a 42 69 74  |s.Task flags.Bit|
0001ce00  09 4d 65 61 6e 69 6e 67  20 69 66 20 73 65 74 0a  |.Meaning if set.|
0001ce10  23 4c 69 6e 65 0a 30 09  6d 6f 64 75 6c 65 20 74  |#Line.0.module t|
0001ce20  61 73 6b 20 28 6f 74 68  65 72 77 69 73 65 20 61  |ask (otherwise a|
0001ce30  70 70 6c 69 63 61 74 69  6f 6e 20 74 61 73 6b 29  |pplication task)|
0001ce40  0a 31 09 73 6c 6f 74 20  62 61 72 20 63 61 6e 20  |.1.slot bar can |
0001ce50  62 65 20 64 72 61 67 67  65 64 20 28 6f 74 68 65  |be dragged (othe|
0001ce60  72 77 69 73 65 20 69 74  20 63 61 6e 27 74 29 0a  |rwise it can't).|
0001ce70  44 41 54 41 43 01 00 00  54 61 73 6b 4d 61 6e 61  |DATAC...TaskMana|
0001ce80  67 65 72 5f 54 61 73 6b  4e 61 6d 65 46 72 6f 6d  |ger_TaskNameFrom|
0001ce90  48 61 6e 64 6c 65 20 20  28 26 34 32 36 38 30 29  |Handle  (&42680)|
0001cea0  0a 23 50 61 72 65 6e 74  20 54 61 73 6b 4d 61 6e  |.#Parent TaskMan|
0001ceb0  61 67 65 72 5f 0a 3d 3e  09 52 30 20 3d 09 74 61  |ager_.=>.R0 =.ta|
0001cec0  73 6b 20 68 61 6e 64 6c  65 0a 3c 3d 09 52 30 20  |sk handle.<=.R0 |
0001ced0  3d 09 70 6f 69 6e 74 65  72 20 74 6f 20 74 61 73  |=.pointer to tas|
0001cee0  6b 6e 61 6d 65 0a 0a 54  68 69 73 20 53 57 49 20  |kname..This SWI |
0001cef0  72 65 74 75 72 6e 73 20  74 68 65 20 64 65 73 63  |returns the desc|
0001cf00  72 69 70 74 69 6f 6e 20  73 74 72 69 6e 67 20 77  |ription string w|
0001cf10  68 69 63 68 20 74 68 65  20 74 61 73 6b 20 75 73  |hich the task us|
0001cf20  65 64 20 77 68 65 6e 20  69 74 20 63 61 6c 6c 65  |ed when it calle|
0001cf30  64 20 3c 57 69 6d 70 5f  49 6e 69 74 69 61 6c 69  |d <Wimp_Initiali|
0001cf40  73 65 3e 2c 20 77 68 69  63 68 20 69 73 20 61 6c  |se>, which is al|
0001cf50  73 6f 20 74 68 65 20 73  74 72 69 6e 67 20 73 68  |so the string sh|
0001cf60  6f 77 6e 20 69 6e 20 74  68 65 20 74 61 73 6b 20  |own in the task |
0001cf70  6d 61 6e 61 67 65 72 20  77 69 6e 64 6f 77 2e 20  |manager window. |
0001cf80  59 6f 75 20 73 68 6f 75  6c 64 20 63 6f 70 79 20  |You should copy |
0001cf90  74 68 65 20 73 74 72 69  6e 67 20 69 66 20 79 6f  |the string if yo|
0001cfa0  75 20 77 69 73 68 20 74  6f 20 6b 65 65 70 20 69  |u wish to keep i|
0001cfb0  74 2e 0a 00 44 41 54 41  90 02 00 00 54 61 73 6b  |t...DATA....Task|
0001cfc0  4d 61 6e 61 67 65 72 5f  53 68 75 74 64 6f 77 6e  |Manager_Shutdown|
0001cfd0  20 20 28 26 34 32 36 38  32 29 0a 23 50 61 72 65  |  (&42682).#Pare|
0001cfe0  6e 74 20 54 61 73 6b 4d  61 6e 61 67 65 72 5f 0a  |nt TaskManager_.|
0001cff0  3d 3e 09 52 30 20 3d 09  3c 53 68 75 74 64 6f 77  |=>.R0 =.<Shutdow|
0001d000  6e 20 66 6c 61 67 73 3d  3e 2e 66 6c 61 67 73 3e  |n flags=>.flags>|
0001d010  0a 0a 54 68 69 73 20 63  61 6c 6c 20 69 6e 69 74  |..This call init|
0001d020  69 61 6c 69 73 65 73 20  61 20 64 65 73 6b 74 6f  |ialises a deskto|
0001d030  70 20 73 68 75 74 64 6f  77 6e 2e 20 54 68 65 20  |p shutdown. The |
0001d040  61 63 74 69 6f 6e 73 20  70 72 65 66 6f 72 6d 65  |actions preforme|
0001d050  64 20 61 72 65 20 63 6f  6e 74 72 6f 6c 6c 65 64  |d are controlled|
0001d060  20 62 79 20 74 68 65 20  73 68 75 74 64 6f 77 6e  | by the shutdown|
0001d070  20 66 6c 61 67 73 2e 0a  23 53 75 62 70 61 67 65  | flags..#Subpage|
0001d080  20 66 6c 61 67 73 0a 54  61 73 6b 4d 61 6e 61 67  | flags.TaskManag|
0001d090  65 72 5f 53 68 75 74 64  6f 77 6e 20 74 79 70 65  |er_Shutdown type|
0001d0a0  73 0a 42 69 74 09 4d 65  61 6e 69 6e 67 20 77 68  |s.Bit.Meaning wh|
0001d0b0  65 6e 20 73 65 74 0a 23  4c 69 6e 65 0a 30 09 64  |en set.#Line.0.d|
0001d0c0  6f 6e 27 74 20 64 69 73  70 6c 61 79 20 72 65 73  |on't display res|
0001d0d0  74 61 72 74 20 64 69 61  6c 6f 67 75 65 0a 31 09  |tart dialogue.1.|
0001d0e0  64 6f 6e 27 74 20 62 72  6f 61 64 63 61 73 74 20  |don't broadcast |
0001d0f0  3c 4d 65 73 73 61 67 65  5f 50 72 65 51 75 69 74  |<Message_PreQuit|
0001d100  3d 3e 4d 73 67 5f 38 3e  0a 32 09 66 6c 61 67 20  |=>Msg_8>.2.flag |
0001d110  69 6e 20 3c 43 4d 4f 53  3d 3e 4f 53 3a 4f 53 5f  |in <CMOS=>OS:OS_|
0001d120  42 79 74 65 43 4d 4f 53  3e 20 61 73 20 70 6f 72  |ByteCMOS> as por|
0001d130  74 61 62 6c 65 20 50 6f  77 65 72 44 6f 77 6e 0a  |table PowerDown.|
0001d140  33 09 73 65 6e 64 20 61  20 3c 4d 65 73 73 61 67  |3.send a <Messag|
0001d150  65 5f 53 68 75 74 64 6f  77 6e 3d 3e 4d 73 67 5f  |e_Shutdown=>Msg_|
0001d160  44 3e 0a 34 09 72 65 6a  65 63 74 20 3c 4f 53 5f  |D>.4.reject <OS_|
0001d170  55 70 63 61 6c 6c 20 31  20 61 6e 64 20 32 3d 3e  |Upcall 1 and 2=>|
0001d180  4f 53 3a 4f 53 5f 55 70  43 61 6c 6c 72 65 61 73  |OS:OS_UpCallreas|
0001d190  6f 6e 73 3e 0a 35 2d 33  31 09 6d 75 73 74 20 62  |ons>.5-31.must b|
0001d1a0  65 20 7a 65 72 6f 0a 0a  49 66 20 62 69 74 20 32  |e zero..If bit 2|
0001d1b0  20 69 73 20 73 65 74 2c  20 74 68 65 6e 20 69 74  | is set, then it|
0001d1c0  20 69 73 20 66 6c 61 67  67 65 64 20 69 6e 20 43  | is flagged in C|
0001d1d0  4d 4f 53 20 74 68 61 74  20 74 68 65 20 6c 61 73  |MOS that the las|
0001d1e0  74 20 73 68 75 74 64 6f  77 6e 20 77 61 73 20 66  |t shutdown was f|
0001d1f0  6f 72 63 65 64 20 62 79  20 61 20 6c 6f 77 20 62  |orced by a low b|
0001d200  61 74 74 65 72 79 2c 20  61 6e 64 20 6d 65 73 73  |attery, and mess|
0001d210  61 67 65 20 72 65 70 6f  72 74 69 6e 67 20 74 68  |age reporting th|
0001d220  69 73 20 69 73 20 61 74  20 69 73 73 75 65 64 20  |is is at issued |
0001d230  6e 65 78 74 20 44 65 73  6b 74 6f 70 20 73 74 61  |next Desktop sta|
0001d240  72 74 2e 0a 44 41 54 41  c4 03 00 00 23 20 54 68  |rt..DATA....# Th|
0001d250  69 73 20 69 73 20 6e 6f  74 20 61 6e 20 65 72 72  |is is not an err|
0001d260  6f 72 2c 20 69 74 20 69  73 20 65 6d 62 65 64 64  |or, it is embedd|
0001d270  65 64 20 69 6e 20 21 52  6f 6f 74 20 61 6e 64 20  |ed in !Root and |
0001d280  57 69 6d 70 5f 21 52 6f  6f 74 0a 23 54 61 62 6c  |Wimp_!Root.#Tabl|
0001d290  65 20 43 6f 6c 75 6d 6e  73 20 34 0a 3c 41 64 64  |e Columns 4.<Add|
0001d2a0  4d 65 73 73 61 67 65 73  3e 0a 3c 42 61 73 65 4f  |Messages>.<BaseO|
0001d2b0  66 53 70 72 69 74 65 73  3e 0a 3c 42 6c 6f 63 6b  |fSprites>.<Block|
0001d2c0  43 6f 70 79 3e 0a 3c 43  6c 61 69 6d 46 72 65 65  |Copy>.<ClaimFree|
0001d2d0  4d 65 6d 6f 72 79 3e 0a  3c 43 6c 6f 73 65 44 6f  |Memory>.<CloseDo|
0001d2e0  77 6e 3e 0a 3c 43 6c 6f  73 65 54 65 6d 70 6c 61  |wn>.<CloseTempla|
0001d2f0  74 65 3e 0a 3c 43 6c 6f  73 65 57 69 6e 64 6f 77  |te>.<CloseWindow|
0001d300  3e 0a 3c 43 6f 6d 6d 61  6e 64 57 69 6e 64 6f 77  |>.<CommandWindow|
0001d310  3e 0a 3c 43 72 65 61 74  65 49 63 6f 6e 3e 0a 3c  |>.<CreateIcon>.<|
0001d320  43 72 65 61 74 65 4d 65  6e 75 3e 0a 3c 43 72 65  |CreateMenu>.<Cre|
0001d330  61 74 65 53 75 62 4d 65  6e 75 3e 0a 3c 43 72 65  |ateSubMenu>.<Cre|
0001d340  61 74 65 57 69 6e 64 6f  77 3e 0a 3c 44 65 63 6f  |ateWindow>.<Deco|
0001d350  64 65 4d 65 6e 75 3e 0a  3c 44 65 6c 65 74 65 49  |deMenu>.<DeleteI|
0001d360  63 6f 6e 3e 0a 3c 44 65  6c 65 74 65 57 69 6e 64  |con>.<DeleteWind|
0001d370  6f 77 3e 0a 3c 44 72 61  67 42 6f 78 3e 0a 3c 45  |ow>.<DragBox>.<E|
0001d380  78 74 65 6e 64 3e 0a 3c  46 6f 72 63 65 52 65 64  |xtend>.<ForceRed|
0001d390  72 61 77 3e 0a 3c 47 65  74 43 61 72 65 74 50 6f  |raw>.<GetCaretPo|
0001d3a0  73 69 74 69 6f 6e 3e 0a  3c 47 65 74 49 63 6f 6e  |sition>.<GetIcon|
0001d3b0  53 74 61 74 65 3e 0a 3c  47 65 74 4d 65 6e 75 53  |State>.<GetMenuS|
0001d3c0  74 61 74 65 3e 0a 3c 47  65 74 50 6f 69 6e 74 65  |tate>.<GetPointe|
0001d3d0  72 49 6e 66 6f 3e 0a 3c  47 65 74 52 65 63 74 61  |rInfo>.<GetRecta|
0001d3e0  6e 67 6c 65 3e 0a 3c 47  65 74 57 69 6e 64 6f 77  |ngle>.<GetWindow|
0001d3f0  49 6e 66 6f 3e 0a 3c 47  65 74 57 69 6e 64 6f 77  |Info>.<GetWindow|
0001d400  4f 75 74 6c 69 6e 65 3e  0a 3c 47 65 74 57 69 6e  |Outline>.<GetWin|
0001d410  64 6f 77 53 74 61 74 65  3e 0a 3c 49 6e 69 74 69  |dowState>.<Initi|
0001d420  61 6c 69 73 65 3e 0a 3c  4c 6f 61 64 54 65 6d 70  |alise>.<LoadTemp|
0001d430  6c 61 74 65 3e 0a 3c 4f  70 65 6e 54 65 6d 70 6c  |late>.<OpenTempl|
0001d440  61 74 65 3e 0a 3c 4f 70  65 6e 57 69 6e 64 6f 77  |ate>.<OpenWindow|
0001d450  3e 0a 3c 50 6c 6f 74 49  63 6f 6e 3e 0a 3c 50 6f  |>.<PlotIcon>.<Po|
0001d460  6c 6c 3e 0a 3c 50 6f 6c  6c 49 64 6c 65 3e 0a 3c  |ll>.<PollIdle>.<|
0001d470  50 72 6f 63 65 73 73 4b  65 79 3e 0a 3c 52 65 61  |ProcessKey>.<Rea|
0001d480  64 50 61 6c 65 74 74 65  3e 0a 3c 52 65 61 64 50  |dPalette>.<ReadP|
0001d490  69 78 54 72 61 6e 73 3e  0a 3c 52 65 61 64 53 79  |ixTrans>.<ReadSy|
0001d4a0  73 49 6e 66 6f 3e 0a 3c  52 65 64 72 61 77 57 69  |sInfo>.<RedrawWi|
0001d4b0  6e 64 6f 77 3e 0a 3c 52  65 67 69 73 74 65 72 46  |ndow>.<RegisterF|
0001d4c0  69 6c 74 65 72 3e 0a 3c  52 65 6d 6f 76 65 4d 65  |ilter>.<RemoveMe|
0001d4d0  73 73 61 67 65 73 3e 0a  3c 52 65 70 6f 72 74 45  |ssages>.<ReportE|
0001d4e0  72 72 6f 72 3e 0a 3c 52  65 73 69 7a 65 49 63 6f  |rror>.<ResizeIco|
0001d4f0  6e 3e 0a 3c 53 65 6e 64  4d 65 73 73 61 67 65 3e  |n>.<SendMessage>|
0001d500  0a 3c 53 65 74 43 61 72  65 74 50 6f 73 69 74 69  |.<SetCaretPositi|
0001d510  6f 6e 3e 0a 3c 53 65 74  43 6f 6c 6f 75 72 3e 0a  |on>.<SetColour>.|
0001d520  3c 53 65 74 43 6f 6c 6f  75 72 4d 61 70 70 69 6e  |<SetColourMappin|
0001d530  67 3e 0a 3c 53 65 74 45  78 74 65 6e 74 3e 0a 3c  |g>.<SetExtent>.<|
0001d540  53 65 74 46 6f 6e 74 43  6f 6c 6f 75 72 73 3e 0a  |SetFontColours>.|
0001d550  3c 53 65 74 49 63 6f 6e  53 74 61 74 65 3e 0a 3c  |<SetIconState>.<|
0001d560  53 65 74 4d 6f 64 65 3e  0a 3c 53 65 74 50 61 6c  |SetMode>.<SetPal|
0001d570  65 74 74 65 3e 0a 3c 53  65 74 50 6f 69 6e 74 65  |ette>.<SetPointe|
0001d580  72 53 68 61 70 65 3e 0a  3c 53 65 74 57 61 74 63  |rShape>.<SetWatc|
0001d590  68 64 6f 67 53 74 61 74  65 3e 0a 3c 53 6c 6f 74  |hdogState>.<Slot|
0001d5a0  53 69 7a 65 3e 0a 3c 53  70 72 69 74 65 4f 70 3e  |Size>.<SpriteOp>|
0001d5b0  0a 3c 53 74 61 72 74 54  61 73 6b 3e 0a 3c 54 65  |.<StartTask>.<Te|
0001d5c0  78 74 43 6f 6c 6f 75 72  3e 0a 3c 54 65 78 74 4f  |xtColour>.<TextO|
0001d5d0  70 3e 0a 3c 54 72 61 6e  73 66 65 72 42 6c 6f 63  |p>.<TransferBloc|
0001d5e0  6b 3e 0a 3c 55 70 64 61  74 65 57 69 6e 64 6f 77  |k>.<UpdateWindow|
0001d5f0  3e 0a 3c 57 68 69 63 68  49 63 6f 6e 3e 0a 23 45  |>.<WhichIcon>.#E|
0001d600  6e 64 54 61 62 6c 65 0a  44 49 52 24 d0 08 00 00  |ndTable.DIR$....|
0001d610  d0 08 00 00 d8 de 01 00  48 fd ff ff e7 4f 86 1a  |........H....O..|
0001d620  a7 00 00 00 13 00 00 00  00 00 00 00 21 72 6f 6f  |............!roo|
0001d630  74 00 00 00 80 df 01 00  48 ff ff ff da f9 5b 24  |t.......H.....[$|
0001d640  79 02 00 00 13 00 00 00  00 00 00 00 42 61 73 65  |y...........Base|
0001d650  4f 66 53 70 72 69 74 65  73 00 00 00 fc e1 01 00  |OfSprites.......|
0001d660  48 ff ff ff 4e 4e 72 2a  1f 02 00 00 13 00 00 00  |H...NNr*........|
0001d670  00 00 00 00 42 6c 6f 63  6b 43 6f 70 79 00 00 00  |....BlockCopy...|
0001d680  1c e4 01 00 45 fd ff ff  77 57 f3 ff 46 01 00 00  |....E...wW..F...|
0001d690  13 00 00 00 00 00 00 00  63 61 72 65 74 68 66 00  |........carethf.|
0001d6a0  64 e5 01 00 48 ff ff ff  ac a4 6e 2a a4 01 00 00  |d...H.....n*....|
0001d6b0  13 00 00 00 00 00 00 00  43 6c 61 69 6d 46 72 65  |........ClaimFre|
0001d6c0  65 4d 65 6d 6f 72 79 00  08 e7 01 00 47 ff ff ff  |eMemory.....G...|
0001d6d0  b0 dc 95 cd 05 02 00 00  13 00 00 00 00 00 00 00  |................|
0001d6e0  43 6c 6f 73 65 44 6f 77  6e 00 00 00 10 e9 01 00  |CloseDown.......|
0001d6f0  47 ff ff ff 0b 62 72 13  9e 00 00 00 13 00 00 00  |G....br.........|
0001d700  00 00 00 00 43 6c 6f 73  65 54 65 6d 70 6c 61 74  |....CloseTemplat|
0001d710  65 00 00 00 b0 e9 01 00  47 ff ff ff b0 f8 be cd  |e.......G.......|
0001d720  82 02 00 00 13 00 00 00  00 00 00 00 43 6f 6d 6d  |............Comm|
0001d730  61 6e 64 57 69 6e 64 6f  77 00 00 00 34 ec 01 00  |andWindow...4...|
0001d740  47 ff ff ff 3a ac bf cd  02 04 00 00 13 00 00 00  |G...:...........|
0001d750  00 00 00 00 43 72 65 61  74 65 49 63 6f 6e 00 00  |....CreateIcon..|
0001d760  38 f0 01 00 48 ff ff ff  a0 9c 77 1a 07 01 00 00  |8...H.....w.....|
0001d770  13 00 00 00 00 00 00 00  43 72 65 61 74 65 4d 65  |........CreateMe|
0001d780  6e 75 00 00 40 f1 01 00  48 ff ff ff db ee de 26  |nu..@...H......&|
0001d790  86 01 00 00 13 00 00 00  00 00 00 00 43 72 65 61  |............Crea|
0001d7a0  74 65 53 75 62 4d 65 6e  75 00 00 00 c8 f2 01 00  |teSubMenu.......|
0001d7b0  47 ff ff ff 93 45 96 cd  07 01 00 00 13 00 00 00  |G....E..........|
0001d7c0  00 00 00 00 43 72 65 61  74 65 57 69 6e 64 6f 77  |....CreateWindow|
0001d7d0  00 00 00 00 d0 f3 01 00  47 ff ff ff 0c 36 bf cd  |........G....6..|
0001d7e0  1d 02 00 00 13 00 00 00  00 00 00 00 44 65 63 6f  |............Deco|
0001d7f0  64 65 4d 65 6e 75 00 00  f0 f5 01 00 47 ff ff ff  |deMenu......G...|
0001d800  27 3e bf cd 54 01 00 00  13 00 00 00 00 00 00 00  |'>..T...........|
0001d810  44 65 6c 65 74 65 49 63  6f 6e 00 00 44 f7 01 00  |DeleteIcon..D...|
0001d820  47 ff ff ff 05 45 bf cd  0a 01 00 00 13 00 00 00  |G....E..........|
0001d830  00 00 00 00 44 65 6c 65  74 65 57 69 6e 64 6f 77  |....DeleteWindow|
0001d840  00 00 00 00 50 f8 01 00  48 ff ff ff 2b f2 50 27  |....P...H...+.P'|
0001d850  e5 02 00 00 13 00 00 00  00 00 00 00 46 6f 72 63  |............Forc|
0001d860  65 52 65 64 72 61 77 00  38 fb 01 00 48 fd ff ff  |eRedraw.8...H...|
0001d870  13 e5 77 1a dc 00 00 00  13 00 00 00 00 00 00 00  |..w.............|
0001d880  69 63 6f 6e 62 6c 6f 63  6b 00 00 00 14 fc 01 00  |iconblock.......|
0001d890  48 fd ff ff 31 1d 77 1a  48 02 00 00 13 00 00 00  |H...1.w.H.......|
0001d8a0  00 00 00 00 69 63 6f 6e  62 75 74 74 6f 6e 00 00  |....iconbutton..|
0001d8b0  5c fe 01 00 45 fd ff ff  cf e7 f2 ff b8 02 00 00  |\...E...........|
0001d8c0  13 00 00 00 00 00 00 00  69 63 6f 6e 64 61 74 61  |........icondata|
0001d8d0  00 00 00 00 14 01 02 00  48 fd ff ff 11 72 79 1a  |........H....ry.|
0001d8e0  c7 02 00 00 13 00 00 00  00 00 00 00 69 63 6f 6e  |............icon|
0001d8f0  66 6c 61 67 73 00 00 00  dc 03 02 00 45 fd ff ff  |flags.......E...|
0001d900  e6 ba f2 ff ce 02 00 00  13 00 00 00 00 00 00 00  |................|
0001d910  69 63 6f 6e 70 6f 73 69  74 69 6f 6e 73 00 00 00  |iconpositions...|
0001d920  ac 06 02 00 48 ff ff ff  61 7f 5b 24 79 07 00 00  |....H...a.[$y...|
0001d930  13 00 00 00 00 00 00 00  49 6e 69 74 69 61 6c 69  |........Initiali|
0001d940  73 65 00 00 28 0e 02 00  47 ff ff ff 05 ba 72 13  |se..(...G.....r.|
0001d950  ea 00 00 00 13 00 00 00  00 00 00 00 4f 70 65 6e  |............Open|
0001d960  54 65 6d 70 6c 61 74 65  00 00 00 00 14 0f 02 00  |Template........|
0001d970  48 ff ff ff 5f 51 6c 27  bc 05 00 00 13 00 00 00  |H..._Ql'........|
0001d980  00 00 00 00 4f 70 65 6e  57 69 6e 64 6f 77 00 00  |....OpenWindow..|
0001d990  d0 14 02 00 48 ff ff ff  ca 8f 52 27 13 01 00 00  |....H.....R'....|
0001d9a0  13 00 00 00 00 00 00 00  50 6c 6f 74 49 63 6f 6e  |........PlotIcon|
0001d9b0  00 00 00 00 e4 15 02 00  48 ff ff ff 61 47 5d 24  |........H...aG]$|
0001d9c0  0b 02 00 00 13 00 00 00  00 00 00 00 50 72 6f 63  |............Proc|
0001d9d0  65 73 73 4b 65 79 00 00  f0 17 02 00 47 ff ff ff  |essKey......G...|
0001d9e0  c8 b0 bf cd 0b 01 00 00  13 00 00 00 00 00 00 00  |................|
0001d9f0  52 65 64 72 61 77 57 69  6e 64 6f 77 00 00 00 00  |RedrawWindow....|
0001da00  fc 18 02 00 48 ff ff ff  ab 32 58 2a 0d 03 00 00  |....H....2X*....|
0001da10  13 00 00 00 00 00 00 00  72 65 70 6f 72 74 65 72  |........reporter|
0001da20  72 6f 72 00 0c 1c 02 00  46 fd ff ff 4b 5b da 96  |ror.....F...K[..|
0001da30  01 03 00 00 13 00 00 00  00 00 00 00 72 65 70 6f  |............repo|
0001da40  72 74 65 72 72 6f 72 30  00 00 00 00 10 1f 02 00  |rterror0........|
0001da50  48 ff ff ff 8f 8d 5d 24  41 01 00 00 13 00 00 00  |H.....]$A.......|
0001da60  00 00 00 00 53 6c 6f 74  53 69 7a 65 00 00 00 00  |....SlotSize....|
0001da70  54 20 02 00 48 ff ff ff  c3 1a 5c 24 59 01 00 00  |T ..H.....\$Y...|
0001da80  13 00 00 00 00 00 00 00  53 70 72 69 74 65 4f 70  |........SpriteOp|
0001da90  00 00 00 00 b0 21 02 00  48 ff ff ff 4e 45 52 27  |.....!..H...NER'|
0001daa0  97 01 00 00 13 00 00 00  00 00 00 00 53 74 61 72  |............Star|
0001dab0  74 54 61 73 6b 00 00 00  48 23 02 00 47 ff ff ff  |tTask...H#..G...|
0001dac0  2d b0 75 13 b1 00 00 00  13 00 00 00 00 00 00 00  |-.u.............|
0001dad0  54 65 78 74 43 6f 6c 6f  75 72 00 00 fc 23 02 00  |TextColour...#..|
0001dae0  47 ff ff ff 22 52 bf cd  50 01 00 00 13 00 00 00  |G..."R..P.......|
0001daf0  00 00 00 00 54 72 61 6e  73 66 65 72 42 6c 6f 63  |....TransferBloc|
0001db00  6b 00 00 00 4c 25 02 00  48 ff ff ff e1 5b 72 2a  |k...L%..H....[r*|
0001db10  97 02 00 00 13 00 00 00  00 00 00 00 55 70 64 61  |............Upda|
0001db20  74 65 57 69 6e 64 6f 77  00 00 00 00 e4 27 02 00  |teWindow.....'..|
0001db30  48 fd ff ff a6 5d 79 1a  51 0f 00 00 13 00 00 00  |H....]y.Q.......|
0001db40  00 00 00 00 76 61 6c 69  64 61 74 69 6f 6e 73 74  |....validationst|
0001db50  72 69 6e 67 00 00 00 00  38 37 02 00 47 ff ff ff  |ring....87..G...|
0001db60  0e b5 75 13 22 01 00 00  13 00 00 00 00 00 00 00  |..u."...........|
0001db70  57 68 69 63 68 49 63 6f  6e 00 00 00 5c 38 02 00  |WhichIcon...\8..|
0001db80  48 fd ff ff 9d 01 4e 27  86 04 00 00 13 00 00 00  |H.....N'........|
0001db90  00 00 00 00 77 69 6e 64  6f 77 62 6c 6f 63 6b 00  |....windowblock.|
0001dba0  e4 3c 02 00 48 fd ff ff  2b 17 8c 1a fe 06 00 00  |.<..H...+.......|
0001dbb0  13 00 00 00 00 00 00 00  77 69 6e 64 6f 77 66 6c  |........windowfl|
0001dbc0  61 67 73 00 e4 43 02 00  46 fd ff ff d0 4f 2d 44  |ags..C..F....O-D|
0001dbd0  c9 01 00 00 13 00 00 00  00 00 00 00 77 6f 72 6b  |............work|
0001dbe0  61 72 65 61 62 75 74 74  6f 6e 66 6c 61 67 73 00  |areabuttonflags.|
0001dbf0  b0 45 02 00 48 ff ff ff  a8 56 5b 24 06 01 00 00  |.E..H....V[$....|
0001dc00  13 00 00 00 00 00 00 00  41 64 64 4d 65 73 73 61  |........AddMessa|
0001dc10  67 65 73 00 b8 46 02 00  48 ff ff ff fb 54 5d 24  |ges..F..H....T]$|
0001dc20  9a 00 00 00 13 00 00 00  00 00 00 00 52 65 67 69  |............Regi|
0001dc30  73 74 65 72 46 69 6c 74  65 72 00 00 54 47 02 00  |sterFilter..TG..|
0001dc40  48 ff ff ff 1e 43 5b 24  f2 00 00 00 13 00 00 00  |H....C[$........|
0001dc50  00 00 00 00 52 65 6d 6f  76 65 4d 65 73 73 61 67  |....RemoveMessag|
0001dc60  65 73 00 00 48 48 02 00  48 ff ff ff f1 97 5d 24  |es..HH..H.....]$|
0001dc70  75 04 00 00 13 00 00 00  00 00 00 00 54 65 78 74  |u...........Text|
0001dc80  4f 70 00 00 c0 4c 02 00  48 ff ff ff bb d6 50 27  |Op...L..H.....P'|
0001dc90  a7 04 00 00 13 00 00 00  00 00 00 00 44 72 61 67  |............Drag|
0001dca0  42 6f 78 00 68 51 02 00  48 fd ff ff 90 f0 80 2b  |Box.hQ..H......+|
0001dcb0  d4 01 00 00 13 01 00 00  00 00 00 00 47 65 74 00  |............Get.|
0001dcc0  7c 68 02 00 48 fd ff ff  22 f3 80 2b 74 01 00 00  ||h..H..."..+t...|
0001dcd0  13 01 00 00 00 00 00 00  53 65 74 00 1c 78 02 00  |........Set..x..|
0001dce0  48 fd ff ff 9e f4 80 2b  f4 01 00 00 13 01 00 00  |H......+........|
0001dcf0  00 00 00 00 50 6f 6c 6c  00 00 00 00 dc 97 02 00  |....Poll........|
0001dd00  48 fd ff ff c6 f6 80 2b  80 00 00 00 13 01 00 00  |H......+........|
0001dd10  00 00 00 00 53 65 6e 64  6d 65 73 73 61 67 65 00  |....Sendmessage.|
0001dd20  20 a0 02 00 48 fd ff ff  64 f7 80 2b c4 00 00 00  | ...H...d..+....|
0001dd30  13 01 00 00 00 00 00 00  52 65 61 64 00 00 00 00  |........Read....|
0001dd40  a0 a8 02 00 47 fd ff ff  4c 48 18 0a db 01 00 00  |....G...LH......|
0001dd50  13 00 00 00 00 00 00 00  4d 6f 64 65 53 65 6c 65  |........ModeSele|
0001dd60  63 74 00 00 7c aa 02 00  48 fd ff ff 70 8d 75 1b  |ct..|...H...p.u.|
0001dd70  0c 02 00 00 13 00 00 00  00 00 00 00 4d 6f 64 65  |............Mode|
0001dd80  53 74 72 69 6e 67 00 00  88 ac 02 00 48 ff ff ff  |String......H...|
0001dd90  b8 21 59 24 15 01 00 00  13 00 00 00 00 00 00 00  |.!Y$............|
0001dda0  52 65 73 69 7a 65 49 63  6f 6e 00 00 a0 ad 02 00  |ResizeIcon......|
0001ddb0  48 fd ff ff 2f 51 86 1a  37 00 00 00 13 00 00 00  |H.../Q..7.......|
0001ddc0  00 00 00 00 21 52 6f 6f  74 53 57 49 73 00 00 00  |....!RootSWIs...|
0001ddd0  d8 ad 02 00 48 fd ff ff  29 4c 51 27 a2 04 00 00  |....H...)LQ'....|
0001dde0  13 00 00 00 00 00 00 00  4d 65 6e 75 42 6c 6f 63  |........MenuBloc|
0001ddf0  6b 00 00 00 7c b2 02 00  48 fd ff ff e7 1a 78 1a  |k...|...H.....x.|
0001de00  c0 00 00 00 33 00 00 00  00 00 00 00 57 69 6e 64  |....3.......Wind|
0001de10  6f 77 4c 6f 63 61 74 69  6f 6e 00 00 3c b3 02 00  |owLocation..<...|
0001de20  48 ff ff ff 52 bd 5c 24  d4 01 00 00 33 00 00 00  |H...R.\$....3...|
0001de30  00 00 00 00 45 78 74 65  6e 64 00 00 10 b5 02 00  |....Extend......|
0001de40  48 fd ff ff cf 31 50 27  98 04 00 00 13 00 00 00  |H....1P'........|
0001de50  00 00 00 00 6e 65 73 74  69 6e 67 66 6c 61 67 73  |....nestingflags|
0001de60  00 00 00 00 a8 b9 02 00  48 fd ff ff 69 6c 0a 28  |........H...il.(|
0001de70  d5 00 00 00 13 00 00 00  00 00 00 00 70 61 6c 65  |............pale|
0001de80  74 74 65 62 6c 6f 63 6b  00 00 00 00 80 ba 02 00  |tteblock........|
0001de90  48 ff ff ff ce 71 5c 24  14 02 00 00 13 00 00 00  |H....q\$........|
0001dea0  00 00 00 00 43 6c 6f 73  65 57 69 6e 64 6f 77 00  |....CloseWindow.|
0001deb0  94 bc 02 00 48 ff ff ff  df 25 6f 2a 82 03 00 00  |....H....%o*....|
0001dec0  13 00 00 00 00 00 00 00  4c 6f 61 64 54 65 6d 70  |........LoadTemp|
0001ded0  6c 61 74 65 00 00 00 00  44 41 54 41 a7 00 00 00  |late....DATA....|
0001dee0  57 69 6d 70 0a 23 20 54  68 69 73 20 69 73 20 6e  |Wimp.# This is n|
0001def0  6f 74 20 61 6e 20 65 72  72 6f 72 20 2d 20 74 68  |ot an error - th|
0001df00  69 73 20 70 61 67 65 20  69 73 20 61 63 63 65 73  |is page is acces|
0001df10  73 65 64 20 66 72 6f 6d  20 74 68 65 20 53 57 49  |sed from the SWI|
0001df20  73 20 6d 61 6e 75 61 6c  0a 23 50 61 72 65 6e 74  |s manual.#Parent|
0001df30  20 21 52 6f 6f 74 0a 23  50 72 65 66 69 78 20 57  | !Root.#Prefix W|
0001df40  69 6d 70 5f 0a 23 49 6e  63 6c 75 64 65 20 73 77  |imp_.#Include sw|
0001df50  69 73 0a 0a 52 65 6c 61  74 65 64 20 74 6f 70 69  |is..Related topi|
0001df60  63 73 20 3a 0a 23 49 6e  64 65 6e 74 20 34 0a 23  |cs :.#Indent 4.#|
0001df70  69 6e 63 6c 75 64 65 20  74 6f 70 69 63 73 0a 00  |include topics..|
0001df80  44 41 54 41 79 02 00 00  57 69 6d 70 5f 42 61 73  |DATAy...Wimp_Bas|
0001df90  65 4f 66 53 70 72 69 74  65 73 20 20 28 26 34 30  |eOfSprites  (&40|
0001dfa0  30 45 41 29 0a 23 50 61  72 65 6e 74 20 57 69 6d  |0EA).#Parent Wim|
0001dfb0  70 5f 0a 3c 3d 09 52 30  20 3d 09 70 6f 69 6e 74  |p_.<=.R0 =.point|
0001dfc0  65 72 20 74 6f 20 52 4f  4d 20 73 70 72 69 74 65  |er to ROM sprite|
0001dfd0  73 20 61 72 65 61 0a 09  52 31 20 3d 09 70 6f 69  |s area..R1 =.poi|
0001dfe0  6e 74 65 72 20 74 6f 20  52 4d 41 20 73 70 72 69  |nter to RMA spri|
0001dff0  74 65 73 20 61 72 65 61  0a 0a 54 68 69 73 20 53  |tes area..This S|
0001e000  57 49 20 67 69 76 65 73  20 79 6f 75 20 74 68 65  |WI gives you the|
0001e010  20 74 77 6f 20 61 72 65  61 73 20 74 68 61 74 20  | two areas that |
0001e020  6d 61 6b 65 20 75 70 20  74 68 65 20 57 69 6d 70  |make up the Wimp|
0001e030  20 73 70 72 69 74 65 20  70 6f 6f 6c 2e 20 4e 6f  | sprite pool. No|
0001e040  74 65 20 74 68 61 74 20  74 68 65 20 52 4d 41 20  |te that the RMA |
0001e050  61 72 65 61 20 6d 61 79  20 6d 6f 76 65 20 61 72  |area may move ar|
0001e060  6f 75 6e 64 20 28 77 68  65 6e 20 73 70 72 69 74  |ound (when sprit|
0001e070  65 73 20 61 72 65 20 61  64 64 65 64 29 20 61 6e  |es are added) an|
0001e080  64 20 74 68 61 74 20 57  69 6e 64 6f 77 6d 61 6e  |d that Windowman|
0001e090  61 67 65 72 73 20 3d 3e  20 33 2e 35 20 61 63 74  |agers => 3.5 act|
0001e0a0  75 61 6c 6c 79 20 75 73  65 20 61 20 64 79 6e 61  |ually use a dyna|
0001e0b0  6d 69 63 20 61 72 65 61  20 69 6e 73 74 65 61 64  |mic area instead|
0001e0c0  20 6f 66 20 74 68 65 20  52 4d 41 2e 0a 0a 59 6f  | of the RMA...Yo|
0001e0d0  75 20 63 61 6e 20 75 73  65 20 74 68 65 73 65 20  |u can use these |
0001e0e0  61 64 64 72 65 73 73 65  73 20 77 69 74 68 20 3c  |addresses with <|
0001e0f0  4f 53 5f 53 70 72 69 74  65 4f 70 3d 3e 4f 53 3a  |OS_SpriteOp=>OS:|
0001e100  4f 53 5f 53 70 72 69 74  65 4f 70 3e 2c 20 62 75  |OS_SpriteOp>, bu|
0001e110  74 20 79 6f 75 20 73 68  6f 75 6c 64 20 61 6c 77  |t you should alw|
0001e120  61 79 73 20 75 73 65 20  3c 57 69 6d 70 5f 53 70  |ays use <Wimp_Sp|
0001e130  72 69 74 65 4f 70 3e 2e  0a 0a 54 68 65 20 6f 6e  |riteOp>...The on|
0001e140  6c 79 20 72 65 61 6c 20  75 73 65 20 66 6f 72 20  |ly real use for |
0001e150  74 68 69 73 20 53 57 49  20 69 73 20 66 6f 72 20  |this SWI is for |
0001e160  73 61 76 69 6e 67 20 74  68 65 20 52 4f 4d 20 73  |saving the ROM s|
0001e170  70 72 69 74 65 73 20 74  6f 20 61 20 66 69 6c 65  |prites to a file|
0001e180  20 3a 0a 0a 23 57 72 61  70 20 6f 66 66 3b 20 66  | :..#Wrap off; f|
0001e190  43 6f 64 65 0a 20 20 53  59 53 20 22 57 69 6d 70  |Code.  SYS "Wimp|
0001e1a0  5f 42 61 73 65 4f 66 53  70 72 69 74 65 73 22 20  |_BaseOfSprites" |
0001e1b0  54 4f 20 52 4f 4d 42 61  73 65 25 2c 52 4d 41 42  |TO ROMBase%,RMAB|
0001e1c0  61 73 65 25 0a 20 20 53  59 53 20 22 4f 53 5f 53  |ase%.  SYS "OS_S|
0001e1d0  70 72 69 74 65 4f 70 22  2c 31 32 2c 52 4f 4d 42  |priteOp",12,ROMB|
0001e1e0  61 73 65 25 2c 22 66 69  6c 65 6e 61 6d 65 22 0a  |ase%,"filename".|
0001e1f0  23 66 3b 20 77 72 61 70  0a 00 00 00 44 41 54 41  |#f; wrap....DATA|
0001e200  1f 02 00 00 57 69 6d 70  5f 42 6c 6f 63 6b 43 6f  |....Wimp_BlockCo|
0001e210  70 79 20 20 28 26 34 30  30 45 42 29 0a 23 50 61  |py  (&400EB).#Pa|
0001e220  72 65 6e 74 20 57 69 6d  70 5f 0a 3d 3e 09 52 30  |rent Wimp_.=>.R0|
0001e230  20 3d 09 77 69 6e 64 6f  77 20 68 61 6e 64 6c 65  | =.window handle|
0001e240  0a 09 52 31 20 3d 09 73  6f 75 72 63 65 09 09 6d  |..R1 =.source..m|
0001e250  69 6e 78 20 28 69 6e 63  6c 29 0a 09 52 32 20 3d  |inx (incl)..R2 =|
0001e260  09 20 09 09 6d 69 6e 79  20 28 69 6e 63 6c 29 0a  |. ..miny (incl).|
0001e270  09 52 33 20 3d 09 20 09  09 6d 61 78 78 20 28 65  |.R3 =. ..maxx (e|
0001e280  78 63 6c 29 0a 09 52 34  20 3d 09 20 09 09 6d 61  |xcl)..R4 =. ..ma|
0001e290  78 79 20 28 65 78 63 6c  29 0a 09 52 35 20 3d 09  |xy (excl)..R5 =.|
0001e2a0  64 65 73 74 69 6e 61 74  69 6f 6e 09 6d 69 6e 78  |destination.minx|
0001e2b0  20 28 69 6e 63 6c 29 0a  09 52 36 20 3d 09 20 09  | (incl)..R6 =. .|
0001e2c0  09 6d 69 6e 79 20 28 69  6e 63 6c 29 0a 0a 54 68  |.miny (incl)..Th|
0001e2d0  69 73 20 53 57 49 20 63  6f 70 69 65 73 20 61 73  |is SWI copies as|
0001e2e0  20 6d 75 63 68 20 61 73  20 70 6f 73 73 69 62 6c  | much as possibl|
0001e2f0  65 20 6f 66 20 73 6f 75  72 63 65 2d 72 65 63 74  |e of source-rect|
0001e300  61 6e 67 6c 65 2c 20 74  6f 20 67 69 76 65 6e 20  |angle, to given |
0001e310  64 65 73 74 2e 20 54 68  65 20 72 65 73 74 20 69  |dest. The rest i|
0001e320  73 20 69 6e 76 61 6c 69  64 61 74 65 64 2e 20 54  |s invalidated. T|
0001e330  68 69 73 20 63 61 6c 6c  20 63 61 6e 6e 6f 74 20  |his call cannot |
0001e340  62 65 20 6d 61 64 65 20  66 72 6f 6d 20 69 6e 73  |be made from ins|
0001e350  69 64 65 20 61 20 3c 72  65 64 72 61 77 3d 3e 57  |ide a <redraw=>W|
0001e360  69 6d 70 5f 52 65 64 72  61 77 57 69 6e 64 6f 77  |imp_RedrawWindow|
0001e370  3e 2f 3c 75 70 64 61 74  65 3d 3e 57 69 6d 70 5f  |>/<update=>Wimp_|
0001e380  55 70 64 61 74 65 57 69  6e 64 6f 77 3e 20 6c 6f  |UpdateWindow> lo|
0001e390  6f 70 2e 0a 0a 4e 6f 74  65 20 74 68 61 74 20 45  |op...Note that E|
0001e3a0  43 46 20 66 69 6c 6c 73  20 61 6e 64 20 74 69 6c  |CF fills and til|
0001e3b0  69 6e 67 20 70 61 74 74  65 72 6e 73 20 63 61 6e  |ing patterns can|
0001e3c0  20 67 65 74 20 6f 75 74  20 6f 66 20 73 74 65 70  | get out of step|
0001e3d0  20 77 69 74 68 20 74 68  69 73 20 63 61 6c 6c 20  | with this call |
0001e3e0  28 66 6f 72 20 61 6e 20  65 78 61 6d 70 6c 65 20  |(for an example |
0001e3f0  77 61 74 63 68 20 74 68  65 20 74 61 73 6b 6d 61  |watch the taskma|
0001e400  6e 61 67 65 72 20 69 6e  20 61 20 32 20 63 6f 6c  |nager in a 2 col|
0001e410  6f 75 72 20 6d 6f 64 65  29 2e 0a 00 44 41 54 41  |our mode)...DATA|
0001e420  46 01 00 00 43 61 72 65  74 20 68 65 69 67 68 74  |F...Caret height|
0001e430  20 61 6e 64 20 66 6c 61  67 73 0a 42 69 74 73 09  | and flags.Bits.|
0001e440  4d 65 61 6e 69 6e 67 0a  23 4c 69 6e 65 0a 30 2d  |Meaning.#Line.0-|
0001e450  31 35 09 48 65 69 67 68  74 20 6f 66 20 63 61 72  |15.Height of car|
0001e460  65 74 20 69 6e 20 4f 53  20 75 6e 69 74 73 2e 0a  |et in OS units..|
0001e470  31 36 2d 32 33 09 43 6f  6c 6f 75 72 20 28 69 66  |16-23.Colour (if|
0001e480  20 62 69 74 20 32 36 20  69 73 20 73 65 74 29 0a  | bit 26 is set).|
0001e490  32 34 09 31 20 3d 3e 20  55 73 65 20 56 44 55 35  |24.1 => Use VDU5|
0001e4a0  20 74 79 70 65 20 63 61  72 65 74 2e 0a 09 30 20  | type caret...0 |
0001e4b0  3d 3e 20 55 73 65 20 61  6e 74 69 2d 61 6c 69 61  |=> Use anti-alia|
0001e4c0  73 65 64 20 63 61 72 65  74 2e 0a 32 35 09 31 20  |sed caret..25.1 |
0001e4d0  3d 3e 20 43 61 72 65 74  20 69 73 20 69 6e 76 69  |=> Caret is invi|
0001e4e0  73 69 62 6c 65 2e 0a 32  36 09 31 20 3d 3e 20 55  |sible..26.1 => U|
0001e4f0  73 65 20 62 69 74 73 20  31 36 2d 32 33 20 66 6f  |se bits 16-23 fo|
0001e500  72 20 63 6f 6c 6f 75 72  2e 0a 09 30 20 3d 3e 20  |r colour...0 => |
0001e510  55 73 65 20 77 69 6d 70  20 63 6f 6c 6f 75 72 20  |Use wimp colour |
0001e520  31 31 2e 0a 32 37 09 31  20 3d 3e 20 31 36 2d 32  |11..27.1 => 16-2|
0001e530  33 20 69 73 20 75 6e 74  72 61 6e 73 6c 61 74 65  |3 is untranslate|
0001e540  64 20 63 6f 6c 2e 0a 09  30 20 3d 3e 20 31 36 2d  |d col...0 => 16-|
0001e550  32 33 20 69 73 20 77 69  6d 70 20 63 6f 6c 6f 75  |23 is wimp colou|
0001e560  72 2e 00 00 44 41 54 41  a4 01 00 00 57 69 6d 70  |r...DATA....Wimp|
0001e570  5f 43 6c 61 69 6d 46 72  65 65 4d 65 6d 6f 72 79  |_ClaimFreeMemory|
0001e580  20 20 28 26 34 30 30 45  45 29 0a 23 50 61 72 65  |  (&400EE).#Pare|
0001e590  6e 74 20 57 69 6d 70 5f  0a 3d 3e 09 52 30 20 3d  |nt Wimp_.=>.R0 =|
0001e5a0  09 31 20 74 6f 20 63 6c  61 69 6d 2c 20 30 20 74  |.1 to claim, 0 t|
0001e5b0  6f 20 72 65 6c 65 61 73  65 0a 09 52 31 20 3d 09  |o release..R1 =.|
0001e5c0  61 6d 6f 75 6e 74 20 72  65 71 75 69 72 65 64 0a  |amount required.|
0001e5d0  0a 3c 3d 09 52 30 20 63  6f 72 72 75 70 74 0a 09  |.<=.R0 corrupt..|
0001e5e0  52 31 20 3d 09 61 6d 6f  75 6e 74 20 61 76 61 69  |R1 =.amount avai|
0001e5f0  6c 61 62 6c 65 0a 09 52  32 20 3d 09 70 6f 69 6e  |lable..R2 =.poin|
0001e600  74 65 72 20 74 6f 20 73  74 61 72 74 20 61 64 64  |ter to start add|
0001e610  72 65 73 73 2c 20 6f 72  20 30 20 69 66 20 6e 6f  |ress, or 0 if no|
0001e620  74 20 65 6e 6f 75 67 68  0a 0a 54 68 69 73 20 63  |t enough..This c|
0001e630  61 6c 6c 20 69 73 20 61  6e 61 6c 6f 67 6f 75 73  |all is analogous|
0001e640  20 74 6f 20 3c 4f 53 5f  43 6c 61 69 6d 53 63 72  | to <OS_ClaimScr|
0001e650  65 65 6e 4d 65 6d 6f 72  79 3d 3e 4f 53 3a 4f 53  |eenMemory=>OS:OS|
0001e660  5f 43 6c 61 69 6d 53 63  72 65 65 6e 4d 65 6d 6f  |_ClaimScreenMemo|
0001e670  72 79 3e 2e 20 49 74 20  63 6c 61 69 6d 73 20 61  |ry>. It claims a|
0001e680  6c 6c 20 74 68 65 20 6d  65 6d 6f 72 79 20 69 6e  |ll the memory in|
0001e690  20 74 68 65 20 66 72 65  65 2d 70 6f 6f 6c 2e 20  | the free-pool. |
0001e6a0  54 68 65 20 6d 65 6d 6f  72 79 20 6d 75 73 74 20  |The memory must |
0001e6b0  62 65 20 61 63 63 65 73  73 65 64 20 69 6e 20 53  |be accessed in S|
0001e6c0  56 43 2d 6d 6f 64 65 2c  20 61 6e 64 20 3c 57 69  |VC-mode, and <Wi|
0001e6d0  6d 70 5f 50 6f 6c 6c 3e  20 73 68 6f 75 6c 64 20  |mp_Poll> should |
0001e6e0  6e 6f 74 20 62 65 20 63  61 6c 6c 65 64 20 77 68  |not be called wh|
0001e6f0  69 6c 65 20 6d 65 6d 6f  72 79 20 69 73 20 72 65  |ile memory is re|
0001e700  73 65 72 76 65 64 2e 0a  44 41 54 41 05 02 00 00  |served..DATA....|
0001e710  57 69 6d 70 5f 43 6c 6f  73 65 44 6f 77 6e 20 20  |Wimp_CloseDown  |
0001e720  28 26 34 30 30 44 44 29  0a 23 50 61 72 65 6e 74  |(&400DD).#Parent|
0001e730  20 57 69 6d 70 5f 0a 3d  3e 09 52 30 20 3d 09 54  | Wimp_.=>.R0 =.T|
0001e740  61 73 6b 68 61 64 6c 65  20 72 65 74 75 72 6e 65  |askhadle returne|
0001e750  64 20 62 79 20 3c 57 69  6d 70 5f 49 6e 69 74 69  |d by <Wimp_Initi|
0001e760  61 6c 69 73 65 3e 0a 09  52 31 20 3d 09 22 54 41  |alise>..R1 =."TA|
0001e770  53 4b 22 20 28 26 34 42  35 33 34 31 35 34 29 0a  |SK" (&4B534154).|
0001e780  3c 3d 09 52 30 20 63 6f  72 72 75 70 74 0a 0a 54  |<=.R0 corrupt..T|
0001e790  68 69 73 20 6d 75 73 74  20 62 65 20 63 61 6c 6c  |his must be call|
0001e7a0  65 64 20 69 6d 6d 65 64  69 61 74 65 6c 79 20 62  |ed immediately b|
0001e7b0  65 66 6f 72 65 20 74 68  65 20 74 61 73 6b 20 74  |efore the task t|
0001e7c0  65 72 6d 69 6e 61 74 65  73 20 62 79 20 63 61 6c  |erminates by cal|
0001e7d0  6c 69 6e 67 20 3c 4f 53  5f 45 78 69 74 3d 3e 4f  |ling <OS_Exit=>O|
0001e7e0  53 3a 4f 53 5f 45 78 69  74 3e 2e 20 49 66 20 69  |S:OS_Exit>. If i|
0001e7f0  74 20 69 73 20 6e 6f 74  2c 20 74 68 65 6e 20 74  |t is not, then t|
0001e800  68 65 20 74 61 73 6b 20  68 61 73 20 61 20 6c 61  |he task has a la|
0001e810  73 74 20 63 68 61 6e 63  65 20 74 6f 20 74 72 61  |st chance to tra|
0001e820  70 20 69 74 73 20 73 68  75 74 64 6f 77 6e 20 62  |p its shutdown b|
0001e830  79 20 6d 65 61 6e 73 20  6f 66 20 74 68 65 20 3c  |y means of the <|
0001e840  57 69 6d 70 43 6c 6f 73  65 44 6f 77 6e 20 73 65  |WimpCloseDown se|
0001e850  72 76 69 63 65 3d 3e 4f  53 3a 73 65 72 76 69 63  |rvice=>OS:servic|
0001e860  65 5f 35 33 3e 20 28 77  68 69 63 68 20 77 69 6c  |e_53> (which wil|
0001e870  6c 20 61 6c 73 6f 20 62  65 20 63 61 6c 6c 65 64  |l also be called|
0001e880  20 69 66 20 74 68 65 20  74 61 73 6b 20 65 78 69  | if the task exi|
0001e890  74 73 20 6e 6f 72 6d 61  6c 6c 79 29 2e 0a 0a 54  |ts normally)...T|
0001e8a0  61 73 6b 20 68 61 6e 64  6c 65 20 61 6e 64 20 6d  |ask handle and m|
0001e8b0  61 67 69 63 20 77 6f 72  64 20 61 72 65 20 6f 6e  |agic word are on|
0001e8c0  6c 79 20 72 65 71 75 69  72 65 64 20 69 66 20 63  |ly required if c|
0001e8d0  6c 6f 73 69 6e 67 20 61  20 74 61 73 6b 20 77 68  |losing a task wh|
0001e8e0  69 63 68 20 69 73 20 6e  6f 74 20 70 72 65 73 65  |ich is not prese|
0001e8f0  6e 74 6c 79 20 70 61 67  65 64 20 69 6e 20 28 65  |ntly paged in (e|
0001e900  67 20 61 20 6d 6f 64 75  6c 65 29 2e 0a 00 00 00  |g a module).....|
0001e910  44 41 54 41 9e 00 00 00  57 69 6d 70 5f 43 6c 6f  |DATA....Wimp_Clo|
0001e920  73 65 54 65 6d 70 6c 61  74 65 20 20 28 26 34 30  |seTemplate  (&40|
0001e930  30 44 41 29 0a 23 50 61  72 65 6e 74 20 57 69 6d  |0DA).#Parent Wim|
0001e940  70 5f 0a 3c 3d 09 52 30  20 63 6f 72 72 75 70 74  |p_.<=.R0 corrupt|
0001e950  0a 0a 54 68 69 73 20 63  61 6c 6c 20 63 6c 6f 73  |..This call clos|
0001e960  65 73 20 74 68 65 20 63  75 72 72 65 6e 74 6c 79  |es the currently|
0001e970  20 6f 70 65 6e 20 74 65  6d 70 6c 61 74 65 20 66  | open template f|
0001e980  69 6c 65 2c 20 70 72 65  76 69 6f 75 73 6c 79 20  |ile, previously |
0001e990  6f 70 65 6e 65 64 20 62  79 20 3c 57 69 6d 70 5f  |opened by <Wimp_|
0001e9a0  4f 70 65 6e 54 65 6d 70  6c 61 74 65 3e 2e 00 00  |OpenTemplate>...|
0001e9b0  44 41 54 41 82 02 00 00  57 69 6d 70 5f 43 6f 6d  |DATA....Wimp_Com|
0001e9c0  6d 61 6e 64 57 69 6e 64  6f 77 20 20 28 26 34 30  |mandWindow  (&40|
0001e9d0  30 45 46 29 0a 23 50 61  72 65 6e 74 20 57 69 6d  |0EF).#Parent Wim|
0001e9e0  70 5f 0a 3d 3e 09 52 30  20 3d 09 6f 70 65 72 61  |p_.=>.R0 =.opera|
0001e9f0  74 69 6f 6e 0a 3c 3d 09  52 30 20 63 6f 72 72 75  |tion.<=.R0 corru|
0001ea00  70 74 0a 0a 23 54 61 62  0a 4f 70 65 72 61 74 69  |pt..#Tab.Operati|
0001ea10  6f 6e 73 0a 20 2d 31 09  43 6f 6d 6d 61 6e 64 20  |ons. -1.Command |
0001ea20  77 69 6e 64 6f 77 20 69  73 20 63 6c 6f 73 65 64  |window is closed|
0001ea30  20 77 68 65 74 68 65 72  20 69 74 20 69 73 20 77  | whether it is w|
0001ea40  61 73 20 75 73 65 64 20  6f 72 20 6e 6f 74 2e 0a  |as used or not..|
0001ea50  20 20 30 09 53 61 6d 65  20 61 73 20 2d 31 2c 20  |  0.Same as -1, |
0001ea60  62 75 74 20 69 66 20 6f  75 74 70 75 74 2c 20 64  |but if output, d|
0001ea70  6f 20 61 20 22 50 72 65  73 73 20 53 50 41 43 45  |o a "Press SPACE|
0001ea80  20 6f 72 20 63 6c 69 63  6b 20 6d 6f 75 73 65 20  | or click mouse |
0001ea90  74 6f 20 63 6f 6e 74 69  6e 75 65 22 0a 20 20 31  |to continue".  1|
0001eaa0  09 43 6f 6d 6d 61 6e 64  20 77 69 6e 64 6f 77 20  |.Command window |
0001eab0  69 73 20 73 65 74 20 74  6f 20 27 61 63 74 69 76  |is set to 'activ|
0001eac0  65 27 0a 20 3e 31 09 50  6f 69 6e 74 65 72 20 74  |e'. >1.Pointer t|
0001ead0  6f 20 74 69 74 6c 65 2e  20 43 6f 6d 6d 61 6e 64  |o title. Command|
0001eae0  20 77 69 6e 64 6f 77 20  69 73 20 73 65 74 20 74  | window is set t|
0001eaf0  6f 20 27 70 65 6e 64 69  6e 67 27 2c 20 61 6e 64  |o 'pending', and|
0001eb00  20 6e 65 78 74 20 74 69  6d 65 20 56 44 55 34 20  | next time VDU4 |
0001eb10  6f 75 74 70 75 74 20 69  73 20 67 65 6e 65 72 61  |output is genera|
0001eb20  74 65 64 2c 20 74 68 65  20 77 69 6e 64 6f 77 20  |ted, the window |
0001eb30  77 69 6c 6c 20 6f 70 65  6e 2e 0a 0a 54 68 69 73  |will open...This|
0001eb40  20 53 57 49 20 6f 70 65  6e 73 20 61 20 74 65 78  | SWI opens a tex|
0001eb50  74 77 69 6e 64 6f 77 20  69 6e 20 77 68 69 63 68  |twindow in which|
0001eb60  20 56 44 55 34 2d 74 79  70 65 20 6f 75 74 70 75  | VDU4-type outpu|
0001eb70  74 20 63 61 6e 20 62 65  20 64 69 73 70 6c 61 79  |t can be display|
0001eb80  65 64 2e 0a 0a 57 68 65  6e 20 74 68 65 20 57 69  |ed...When the Wi|
0001eb90  6d 70 20 73 74 61 72 74  73 20 61 20 74 61 73 6b  |mp starts a task|
0001eba0  2c 20 69 74 20 64 6f 65  73 20 61 0a 7b 66 43 6f  |, it does a.{fCo|
0001ebb0  64 65 7d 20 20 53 59 53  20 22 57 69 6d 70 5f 43  |de}  SYS "Wimp_C|
0001ebc0  6f 6d 6d 61 6e 64 57 69  6e 64 6f 77 22 2c 22 70  |ommandWindow","p|
0001ebd0  72 6f 67 72 61 6d 20 6e  61 6d 65 22 7b 66 7d 0a  |rogram name"{f}.|
0001ebe0  57 68 65 6e 20 3c 57 69  6d 70 5f 49 6e 69 74 69  |When <Wimp_Initi|
0001ebf0  61 6c 69 73 65 3e 20 69  73 20 72 65 61 63 68 65  |alise> is reache|
0001ec00  64 2c 20 69 74 20 64 6f  65 73 0a 7b 66 43 6f 64  |d, it does.{fCod|
0001ec10  65 7d 20 20 53 59 53 20  22 57 69 6d 70 5f 43 6f  |e}  SYS "Wimp_Co|
0001ec20  6d 6d 61 6e 64 57 69 6e  64 6f 77 22 2c 2d 31 7b  |mmandWindow",-1{|
0001ec30  66 7d 00 00 44 41 54 41  02 04 00 00 57 69 6d 70  |f}..DATA....Wimp|
0001ec40  5f 43 72 65 61 74 65 49  63 6f 6e 20 20 28 26 34  |_CreateIcon  (&4|
0001ec50  30 30 43 32 29 0a 23 50  61 72 65 6e 74 20 57 69  |00C2).#Parent Wi|
0001ec60  6d 70 5f 0a 3d 3e 09 52  30 20 3d 09 69 66 20 77  |mp_.=>.R0 =.if w|
0001ec70  69 6e 64 6f 77 20 69 73  20 5c 3c 20 2d 33 20 3a  |indow is \< -3 :|
0001ec80  20 69 63 6f 6e 20 6e 75  6d 62 65 72 2c 20 6f 72  | icon number, or|
0001ec90  20 3c 70 72 69 6f 72 69  74 79 3d 3e 2e 70 72 69  | <priority=>.pri|
0001eca0  6f 72 69 74 69 65 73 3e  0a 09 52 31 20 3d 09 50  |orities>..R1 =.P|
0001ecb0  6f 69 6e 74 65 72 20 74  6f 20 62 6c 6f 63 6b 20  |ointer to block |
0001ecc0  3a 0a 09 09 30 2e 2e 33  09 57 69 6e 64 6f 77 20  |:...0..3.Window |
0001ecd0  68 61 6e 64 6c 65 2c 20  6f 72 20 3c 69 63 6f 6e  |handle, or <icon|
0001ece0  62 61 72 20 6c 6f 63 61  74 69 6f 6e 3d 3e 2e 70  |bar location=>.p|
0001ecf0  6f 73 69 74 69 6f 6e 3e  0a 09 09 34 2e 2e 33 31  |osition>...4..31|
0001ed00  09 3c 49 63 6f 6e 20 62  6c 6f 63 6b 3d 3e 57 69  |.<Icon block=>Wi|
0001ed10  6d 70 5f 69 63 6f 6e 62  6c 6f 63 6b 3e 0a 0a 3c  |mp_iconblock>..<|
0001ed20  3d 09 52 30 20 3d 09 69  63 6f 6e 20 68 61 6e 64  |=.R0 =.icon hand|
0001ed30  6c 65 20 28 75 6e 69 71  75 65 20 77 69 74 68 69  |le (unique withi|
0001ed40  6e 20 77 69 6e 64 6f 77  29 0a 0a 54 68 69 73 20  |n window)..This |
0001ed50  53 57 49 20 61 64 64 73  20 61 20 6e 65 77 20 69  |SWI adds a new i|
0001ed60  63 6f 6e 20 74 6f 20 61  20 77 69 6e 64 6f 77 2e  |con to a window.|
0001ed70  0a 23 0a 23 53 75 62 70  61 67 65 20 70 6f 73 69  |.#.#Subpage posi|
0001ed80  74 69 6f 6e 0a 49 63 6f  6e 62 61 72 20 70 6f 73  |tion.Iconbar pos|
0001ed90  69 74 69 6f 6e 73 0a 56  61 6c 75 65 09 4d 65 61  |itions.Value.Mea|
0001eda0  6e 69 6e 67 0a 23 4c 69  6e 65 0a 2d 31 09 52 69  |ning.#Line.-1.Ri|
0001edb0  67 68 74 20 73 69 64 65  20 6f 66 20 69 63 6f 6e  |ght side of icon|
0001edc0  20 62 61 72 0a 2d 32 09  4c 65 66 74 20 73 69 64  | bar.-2.Left sid|
0001edd0  65 20 6f 66 20 69 63 6f  6e 20 62 61 72 0a 2d 33  |e of icon bar.-3|
0001ede0  09 4c 65 66 74 20 6f 66  20 69 63 6f 6e 20 52 30  |.Left of icon R0|
0001edf0  0a 2d 34 09 52 69 67 68  74 20 6f 66 20 69 63 6f  |.-4.Right of ico|
0001ee00  6e 20 52 30 0a 2d 35 09  4c 65 66 74 20 68 69 67  |n R0.-5.Left hig|
0001ee10  68 20 70 72 69 6f 72 69  74 79 0a 2d 36 09 4c 65  |h priority.-6.Le|
0001ee20  66 74 20 6c 6f 77 20 70  72 69 6f 72 69 74 79 0a  |ft low priority.|
0001ee30  2d 37 09 52 69 67 68 74  20 6c 6f 77 20 70 72 69  |-7.Right low pri|
0001ee40  6f 72 69 74 79 0a 2d 38  09 52 69 67 68 74 20 68  |ority.-8.Right h|
0001ee50  69 67 68 20 70 72 69 6f  72 69 74 79 0a 0a 54 68  |igh priority..Th|
0001ee60  65 20 3c 70 72 69 6f 72  69 74 69 65 73 3d 3e 2e  |e <priorities=>.|
0001ee70  70 72 69 6f 72 69 74 69  65 73 3e 20 61 72 65 20  |priorities> are |
0001ee80  68 65 6c 64 20 69 6e 20  52 30 2c 20 61 6e 64 20  |held in R0, and |
0001ee90  68 69 67 68 20 70 72 69  6f 72 69 74 79 20 69 63  |high priority ic|
0001eea0  6f 6e 73 20 77 69 6c 6c  20 62 65 20 73 68 6f 77  |ons will be show|
0001eeb0  6e 20 63 6c 6f 73 65 72  20 74 6f 20 74 68 65 20  |n closer to the |
0001eec0  65 64 67 65 73 2e 0a 23  0a 23 53 75 62 70 61 67  |edges..#.#Subpag|
0001eed0  65 20 70 72 69 6f 72 69  74 69 65 73 0a 45 78 61  |e priorities.Exa|
0001eee0  6d 70 6c 65 20 70 72 69  6f 72 69 74 69 65 73 0a  |mple priorities.|
0001eef0  41 70 70 6c 69 63 61 74  69 6f 6e 09 09 56 61 6c  |Application..Val|
0001ef00  75 65 0a 23 4c 69 6e 65  0a 54 61 73 6b 20 4d 61  |ue.#Line.Task Ma|
0001ef10  6e 61 67 65 72 09 09 26  36 30 30 30 30 30 30 30  |nager..&60000000|
0001ef20  0a 21 48 65 6c 70 09 09  09 26 34 30 30 30 30 30  |.!Help...&400000|
0001ef30  30 30 0a 50 61 6c 65 74  74 65 20 55 74 69 6c 69  |00.Palette Utili|
0001ef40  74 79 09 09 26 32 30 30  30 30 30 30 30 0a 41 70  |ty..&20000000.Ap|
0001ef50  70 6c 69 63 61 74 69 6f  6e 73 09 09 30 0a 0a 41  |plications..0..A|
0001ef60  44 46 53 20 68 61 72 64  20 64 69 73 63 73 09 09  |DFS hard discs..|
0001ef70  26 37 30 30 30 30 30 30  30 0a 41 44 46 53 20 66  |&70000000.ADFS f|
0001ef80  6c 6f 70 70 79 20 64 69  73 63 73 09 26 36 30 30  |loppy discs.&600|
0001ef90  30 30 30 30 30 0a 27 41  70 70 73 27 20 69 63 6f  |00000.'Apps' ico|
0001efa0  6e 09 09 26 35 30 30 30  30 30 30 30 0a 52 41 4d  |n..&50000000.RAM|
0001efb0  20 64 69 73 63 09 09 26  34 30 30 30 30 30 30 30  | disc..&40000000|
0001efc0  0a 45 74 68 65 72 6e 65  74 09 09 26 33 30 30 30  |.Ethernet..&3000|
0001efd0  30 30 30 30 0a 45 63 6f  6e 65 74 09 09 09 26 32  |0000.Econet...&2|
0001efe0  30 30 30 30 30 30 30 0a  4f 74 68 65 72 20 66 69  |0000000.Other fi|
0001eff0  6c 69 6e 67 20 73 79 73  74 65 6d 73 09 26 31 30  |ling systems.&10|
0001f000  30 30 30 30 30 30 0a 50  72 69 6e 74 65 72 20 64  |000000.Printer d|
0001f010  72 69 76 65 72 73 09 09  26 30 46 30 30 30 30 30  |rivers..&0F00000|
0001f020  30 0a 54 69 6e 79 20 64  69 72 09 09 26 30 45 30  |0.Tiny dir..&0E0|
0001f030  30 30 30 30 30 0a 00 00  44 41 54 41 07 01 00 00  |00000...DATA....|
0001f040  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 20  |Wimp_CreateMenu |
0001f050  20 28 26 34 30 30 44 34  29 0a 23 50 61 72 65 6e  | (&400D4).#Paren|
0001f060  74 20 57 69 6d 70 5f 0a  3d 3e 09 52 31 09 3d 09  |t Wimp_.=>.R1.=.|
0001f070  70 6f 69 6e 74 65 72 20  74 6f 20 3c 6d 65 6e 75  |pointer to <menu|
0001f080  20 62 6c 6f 63 6b 3d 3e  57 69 6d 70 5f 4d 65 6e  | block=>Wimp_Men|
0001f090  75 42 6c 6f 63 6b 3e 2c  20 6f 72 20 2d 31 20 74  |uBlock>, or -1 t|
0001f0a0  6f 20 63 6c 6f 73 65 20  6d 65 6e 75 0a 09 52 32  |o close menu..R2|
0001f0b0  2c 52 33 09 3d 09 78 2c  79 20 63 6f 6f 72 64 69  |,R3.=.x,y coordi|
0001f0c0  6e 61 74 65 20 6f 66 20  74 6f 70 2d 6c 65 66 74  |nate of top-left|
0001f0d0  20 63 6f 72 6e 65 72 20  6f 66 20 74 6f 70 2d 6c  | corner of top-l|
0001f0e0  65 76 65 6c 20 6d 65 6e  75 2e 0a 3c 3d 09 52 30  |evel menu..<=.R0|
0001f0f0  20 63 6f 72 72 75 70 74  0a 0a 49 66 20 52 31 20  | corrupt..If R1 |
0001f100  69 73 20 61 20 77 69 6e  64 6f 77 20 68 61 6e 64  |is a window hand|
0001f110  6c 65 2c 20 74 68 65 6e  20 74 68 69 73 20 77 69  |le, then this wi|
0001f120  6e 64 6f 77 20 77 69 6c  6c 20 62 65 20 6f 70 65  |ndow will be ope|
0001f130  6e 65 64 20 61 73 20 61  20 6d 65 6e 75 2e 0a 00  |ned as a menu...|
0001f140  44 41 54 41 86 01 00 00  57 69 6d 70 5f 43 72 65  |DATA....Wimp_Cre|
0001f150  61 74 65 53 75 62 4d 65  6e 75 20 20 28 26 34 30  |ateSubMenu  (&40|
0001f160  30 45 38 29 0a 23 50 61  72 65 6e 74 20 57 69 6d  |0E8).#Parent Wim|
0001f170  70 5f 0a 3d 3e 09 52 31  09 3d 09 70 6f 69 6e 74  |p_.=>.R1.=.point|
0001f180  65 72 20 74 6f 20 3c 73  75 62 6d 65 6e 75 20 62  |er to <submenu b|
0001f190  6c 6f 63 6b 3d 3e 77 69  6d 70 5f 6d 65 6e 75 62  |lock=>wimp_menub|
0001f1a0  6c 6f 63 6b 3e 2c 20 6f  72 20 77 69 6e 64 6f 77  |lock>, or window|
0001f1b0  20 68 61 6e 64 6c 65 0a  09 52 32 2c 52 33 09 3d  | handle..R2,R3.=|
0001f1c0  09 78 2c 79 20 63 6f 6f  72 64 69 6e 61 74 65 20  |.x,y coordinate |
0001f1d0  6f 66 20 74 6f 70 2d 6c  65 66 74 20 6f 66 20 73  |of top-left of s|
0001f1e0  75 62 6d 65 6e 75 2e 0a  3c 3d 09 52 30 20 63 6f  |ubmenu..<=.R0 co|
0001f1f0  72 72 75 70 74 0a 0a 54  68 69 73 20 63 61 6c 6c  |rrupt..This call|
0001f200  20 69 73 20 6d 61 64 65  20 77 68 65 6e 20 61 20  | is made when a |
0001f210  3c 4d 65 6e 75 57 61 72  6e 69 6e 67 3d 3e 4d 73  |<MenuWarning=>Ms|
0001f220  67 5f 34 30 30 43 30 3e  20 6d 65 73 73 61 67 65  |g_400C0> message|
0001f230  20 69 73 20 72 65 63 65  69 76 65 64 2e 20 54 68  | is received. Th|
0001f240  69 73 20 6d 65 73 73 61  67 65 20 69 73 20 73 65  |is message is se|
0001f250  6e 74 20 62 79 20 57 69  6d 70 20 77 68 65 6e 20  |nt by Wimp when |
0001f260  70 6f 69 6e 74 65 72 20  69 73 20 6f 76 65 72 20  |pointer is over |
0001f270  74 68 65 20 73 75 62 6d  65 6e 75 20 61 72 72 6f  |the submenu arro|
0001f280  77 20 6f 66 20 61 20 6d  65 6e 75 20 69 74 65 6d  |w of a menu item|
0001f290  20 77 69 74 68 20 74 68  65 20 47 65 6e 65 72 61  | with the Genera|
0001f2a0  74 65 20 4d 65 73 73 61  67 65 20 62 69 74 20 73  |te Message bit s|
0001f2b0  65 74 20 69 6e 20 74 68  65 20 69 74 65 6d 20 66  |et in the item f|
0001f2c0  6c 61 67 73 2e 0a 00 00  44 41 54 41 07 01 00 00  |lags....DATA....|
0001f2d0  57 69 6d 70 5f 43 72 65  61 74 65 57 69 6e 64 6f  |Wimp_CreateWindo|
0001f2e0  77 20 20 28 26 34 30 30  43 31 29 0a 23 50 61 72  |w  (&400C1).#Par|
0001f2f0  65 6e 74 20 57 69 6d 70  5f 0a 3d 3e 09 52 31 20  |ent Wimp_.=>.R1 |
0001f300  3d 09 50 6f 69 6e 74 65  72 20 74 6f 20 3c 77 69  |=.Pointer to <wi|
0001f310  6e 64 6f 77 20 62 6c 6f  63 6b 3d 3e 77 69 6d 70  |ndow block=>wimp|
0001f320  5f 77 69 6e 64 6f 77 62  6c 6f 63 6b 3e 0a 3c 3d  |_windowblock>.<=|
0001f330  09 52 30 20 3d 09 57 69  6e 64 6f 77 20 68 61 6e  |.R0 =.Window han|
0001f340  64 6c 65 0a 0a 54 68 69  73 20 74 65 6c 6c 73 20  |dle..This tells |
0001f350  74 68 65 20 57 69 6d 70  20 77 68 61 74 20 74 68  |the Wimp what th|
0001f360  65 20 63 68 61 72 61 63  74 65 72 69 73 74 69 63  |e characteristic|
0001f370  73 20 6f 66 20 61 20 77  69 6e 64 6f 77 20 61 72  |s of a window ar|
0001f380  65 2e 20 54 68 65 20 57  69 6d 70 20 74 61 6b 65  |e. The Wimp take|
0001f390  73 20 61 20 63 6f 70 79  20 6f 66 20 74 68 69 73  |s a copy of this|
0001f3a0  20 62 6c 6f 63 6b 2c 20  73 6f 20 79 6f 75 20 63  | block, so you c|
0001f3b0  6f 75 6c 64 20 74 68 72  6f 77 20 69 74 20 61 77  |ould throw it aw|
0001f3c0  61 79 20 61 66 74 65 72  77 61 72 64 73 2e 0a 00  |ay afterwards...|
0001f3d0  44 41 54 41 1d 02 00 00  57 69 6d 70 5f 44 65 63  |DATA....Wimp_Dec|
0001f3e0  6f 64 65 4d 65 6e 75 20  20 28 26 34 30 30 44 35  |odeMenu  (&400D5|
0001f3f0  29 0a 23 50 61 72 65 6e  74 20 57 69 6d 70 5f 0a  |).#Parent Wimp_.|
0001f400  3d 3e 09 52 31 20 3d 09  70 6f 69 6e 74 65 72 20  |=>.R1 =.pointer |
0001f410  74 6f 20 6d 65 6e 75 20  64 61 74 61 20 73 74 72  |to menu data str|
0001f420  75 63 74 75 72 65 0a 09  52 32 20 3d 09 70 6f 69  |ucture..R2 =.poi|
0001f430  6e 74 65 72 20 74 6f 20  6c 69 73 74 20 6f 66 20  |nter to list of |
0001f440  6d 65 6e 75 73 65 6c 65  63 74 69 6f 6e 73 0a 09  |menuselections..|
0001f450  52 33 20 3d 09 70 6f 69  6e 74 65 72 20 74 6f 20  |R3 =.pointer to |
0001f460  62 75 66 66 65 72 20 66  6f 72 20 61 6e 73 77 65  |buffer for answe|
0001f470  72 0a 0a 3c 3d 09 52 30  20 63 6f 72 72 75 70 74  |r..<=.R0 corrupt|
0001f480  0a 09 42 75 66 66 65 72  20 70 6f 69 6e 74 65 64  |..Buffer pointed|
0001f490  20 74 6f 20 62 79 20 52  33 2c 20 63 6f 6e 74 61  | to by R3, conta|
0001f4a0  69 6e 73 20 6d 65 6e 75  20 69 74 65 6d 20 74 65  |ins menu item te|
0001f4b0  78 74 73 2c 20 73 65 70  61 72 61 74 65 64 20 62  |xts, separated b|
0001f4c0  79 20 27 2e 27 73 0a 0a  54 68 69 73 20 53 57 49  |y '.'s..This SWI|
0001f4d0  20 69 73 20 69 6e 63 72  65 64 69 62 6c 79 20 75  | is incredibly u|
0001f4e0  73 65 66 75 6c 20 69 66  20 79 6f 75 20 77 61 6e  |seful if you wan|
0001f4f0  74 20 74 6f 20 64 65 63  6f 64 65 20 6d 65 6e 75  |t to decode menu|
0001f500  73 20 62 79 20 74 68 65  69 72 20 63 6f 6e 74 65  |s by their conte|
0001f510  6e 74 73 2e 20 54 68 69  73 20 69 73 20 65 61 73  |nts. This is eas|
0001f520  69 65 72 20 74 68 61 6e  20 70 6c 61 79 69 6e 67  |ier than playing|
0001f530  20 77 69 74 68 20 74 68  65 20 73 65 6c 65 63 74  | with the select|
0001f540  69 6f 6e 20 6e 75 6d 62  65 72 20 69 66 20 79 6f  |ion number if yo|
0001f550  75 20 77 61 6e 74 20 61  6e 20 65 61 73 79 20 6c  |u want an easy l|
0001f560  69 66 65 2e 20 49 66 20  79 6f 75 20 68 61 64 20  |ife. If you had |
0001f570  61 20 6d 65 6e 75 20 63  6f 6e 74 61 69 6e 69 6e  |a menu containin|
0001f580  67 20 27 53 65 6c 65 63  74 69 6f 6e 27 2c 20 77  |g 'Selection', w|
0001f590  69 74 68 20 61 20 73 75  62 2d 6f 70 74 69 6f 6e  |ith a sub-option|
0001f5a0  20 27 44 65 6c 65 74 65  27 20 77 68 69 63 68 20  | 'Delete' which |
0001f5b0  77 61 73 20 63 68 6f 73  65 6e 20 79 6f 75 20 77  |was chosen you w|
0001f5c0  6f 75 6c 64 20 67 65 74  20 74 68 65 20 73 74 72  |ould get the str|
0001f5d0  69 6e 67 20 27 53 65 6c  65 63 74 69 6f 6e 2e 44  |ing 'Selection.D|
0001f5e0  65 6c 65 74 65 27 20 62  61 63 6b 2e 0a 00 00 00  |elete' back.....|
0001f5f0  44 41 54 41 54 01 00 00  57 69 6d 70 5f 44 65 6c  |DATAT...Wimp_Del|
0001f600  65 74 65 49 63 6f 6e 20  20 28 26 34 30 30 43 34  |eteIcon  (&400C4|
0001f610  29 0a 23 50 61 72 65 6e  74 20 57 69 6d 70 5f 0a  |).#Parent Wimp_.|
0001f620  3d 3e 09 52 31 20 3d 09  70 6f 69 6e 74 65 72 20  |=>.R1 =.pointer |
0001f630  74 6f 20 3a 0a 09 09 20  20 30 20 20 57 69 6e 64  |to :...  0  Wind|
0001f640  6f 77 20 68 61 6e 64 6c  65 2c 20 6f 72 20 2d 32  |ow handle, or -2|
0001f650  20 66 6f 72 20 69 63 6f  6e 62 61 72 0a 09 09 20  | for iconbar... |
0001f660  20 34 20 20 49 63 6f 6e  20 68 61 6e 64 6c 65 0a  | 4  Icon handle.|
0001f670  0a 54 68 69 73 20 53 57  49 20 72 65 6d 6f 76 65  |.This SWI remove|
0001f680  73 20 74 68 65 20 64 65  66 69 6e 69 74 69 6f 6e  |s the definition|
0001f690  20 6f 66 20 74 68 65 20  67 69 76 65 6e 20 69 63  | of the given ic|
0001f6a0  6f 6e 2e 20 49 66 20 69  74 20 69 73 20 74 68 65  |on. If it is the|
0001f6b0  20 6c 61 73 74 20 69 63  6f 6e 20 69 6e 20 74 68  | last icon in th|
0001f6c0  65 20 77 69 6e 64 6f 77  73 20 6c 69 73 74 2c 20  |e windows list, |
0001f6d0  74 68 65 20 6d 65 6d 6f  72 79 20 69 73 20 72 65  |the memory is re|
0001f6e0  61 6c 6c 6f 63 61 74 65  64 2c 20 69 66 20 6e 6f  |allocated, if no|
0001f6f0  74 20 69 74 20 69 73 20  6f 6e 6c 79 20 6d 61 72  |t it is only mar|
0001f700  6b 65 64 20 61 73 20 64  65 6c 65 74 65 64 2e 0a  |ked as deleted..|
0001f710  0a 54 6f 20 75 70 64 61  74 65 20 73 63 72 65 65  |.To update scree|
0001f720  6e 2c 20 79 6f 75 20 6d  75 73 74 20 63 61 6c 6c  |n, you must call|
0001f730  20 3c 57 69 6d 70 5f 46  6f 72 63 65 52 65 64 72  | <Wimp_ForceRedr|
0001f740  61 77 3e 2e 44 41 54 41  0a 01 00 00 57 69 6d 70  |aw>.DATA....Wimp|
0001f750  5f 44 65 6c 65 74 65 57  69 6e 64 6f 77 20 20 28  |_DeleteWindow  (|
0001f760  26 34 30 30 43 33 29 0a  23 50 61 72 65 6e 74 20  |&400C3).#Parent |
0001f770  57 69 6d 70 5f 0a 3d 3e  09 52 31 20 3d 09 70 6f  |Wimp_.=>.R1 =.po|
0001f780  69 6e 74 65 72 20 74 6f  20 62 6c 6f 63 6b 20 3a  |inter to block :|
0001f790  0a 09 20 09 20 20 30 20  20 57 69 6e 64 6f 77 20  |.. .  0  Window |
0001f7a0  68 61 6e 64 6c 65 0a 0a  54 68 69 73 20 53 57 49  |handle..This SWI|
0001f7b0  20 63 6c 6f 73 65 73 20  74 68 65 20 77 69 6e 64  | closes the wind|
0001f7c0  6f 77 20 69 66 20 69 74  20 69 73 20 6f 70 65 6e  |ow if it is open|
0001f7d0  2c 20 61 6e 64 20 74 68  65 6e 20 72 65 61 6c 6c  |, and then reall|
0001f7e0  6f 63 61 74 65 73 20 74  68 65 20 6d 65 6d 6f 72  |ocates the memor|
0001f7f0  79 20 75 73 65 64 20 69  6e 20 57 69 6d 70 20 77  |y used in Wimp w|
0001f800  6f 72 6b 73 70 61 63 65  2e 20 28 69 6e 64 69 72  |orkspace. (indir|
0001f810  65 63 74 65 64 20 64 61  74 61 20 69 6e 20 41 70  |ected data in Ap|
0001f820  70 6c 69 63 61 74 69 6f  6e 20 77 6f 72 6b 73 70  |plication worksp|
0001f830  61 63 65 2c 20 69 73 20  6c 65 66 74 20 61 6c 6f  |ace, is left alo|
0001f840  6e 65 20 6f 66 20 63 6f  75 72 73 65 29 2e 00 00  |ne of course)...|
0001f850  44 41 54 41 e5 02 00 00  57 69 6d 70 5f 46 6f 72  |DATA....Wimp_For|
0001f860  63 65 52 65 64 72 61 77  20 20 28 26 34 30 30 44  |ceRedraw  (&400D|
0001f870  31 29 0a 23 50 61 72 65  6e 74 20 57 69 6d 70 5f  |1).#Parent Wimp_|
0001f880  0a 3d 3e 09 52 30 20 3d  09 77 69 6e 64 6f 77 20  |.=>.R0 =.window |
0001f890  68 61 6e 64 6c 65 2c 20  2d 32 20 66 6f 72 20 69  |handle, -2 for i|
0001f8a0  63 6f 6e 62 61 72 2c 20  6f 72 20 2d 31 20 66 6f  |conbar, or -1 fo|
0001f8b0  72 20 61 62 73 6f 6c 75  74 65 20 63 6f 2d 6f 72  |r absolute co-or|
0001f8c0  64 69 6e 61 74 65 73 0a  09 52 31 20 3d 09 6d 69  |dinates..R1 =.mi|
0001f8d0  6e 69 6d 75 6d 20 78 0a  09 52 32 20 3d 09 6d 69  |nimum x..R2 =.mi|
0001f8e0  6e 69 6d 75 6d 20 79 0a  09 52 33 20 3d 09 6d 61  |nimum y..R3 =.ma|
0001f8f0  78 69 6d 75 6d 20 78 0a  09 52 34 20 3d 09 6d 61  |ximum x..R4 =.ma|
0001f900  78 69 6d 75 6d 20 79 0a  3c 3d 09 52 30 20 63 6f  |ximum y.<=.R0 co|
0001f910  72 72 75 70 74 65 64 0a  0a 54 68 69 73 20 53 57  |rrupted..This SW|
0001f920  49 20 6d 61 72 6b 73 20  61 72 65 61 20 6f 66 20  |I marks area of |
0001f930  73 63 72 65 65 6e 20 61  73 20 69 6e 76 61 6c 69  |screen as invali|
0001f940  64 2c 20 61 6e 64 20 74  6f 20 62 65 20 72 65 64  |d, and to be red|
0001f950  72 61 77 6e 20 6c 61 74  65 72 2e 20 49 66 20 79  |rawn later. If y|
0001f960  6f 75 20 61 72 65 20 64  6f 69 6e 67 20 73 6f 6d  |ou are doing som|
0001f970  65 20 6b 69 6e 64 20 6f  66 20 61 6e 69 6d 61 74  |e kind of animat|
0001f980  69 6f 6e 2c 20 6f 72 20  6f 74 68 65 72 20 74 65  |ion, or other te|
0001f990  6d 70 6f 72 61 72 79 20  63 68 61 6e 67 65 73 2c  |mporary changes,|
0001f9a0  20 74 68 65 6e 20 79 6f  75 20 73 68 6f 75 6c 64  | then you should|
0001f9b0  20 75 73 65 20 3c 57 69  6d 70 5f 55 70 64 61 74  | use <Wimp_Updat|
0001f9c0  65 57 69 6e 64 6f 77 3e  20 69 6e 73 74 65 61 64  |eWindow> instead|
0001f9d0  2e 0a 0a 55 6e 64 65 72  20 74 68 65 20 6e 65 73  |...Under the nes|
0001f9e0  74 65 64 20 57 69 6d 70  20 69 74 20 69 73 20 70  |ted Wimp it is p|
0001f9f0  6f 73 73 69 62 6c 65 20  74 6f 20 66 6f 72 63 65  |ossible to force|
0001fa00  20 61 20 72 65 64 72 61  77 20 6f 66 20 77 69 6e  | a redraw of win|
0001fa10  64 6f 77 73 20 77 68 69  63 68 20 64 6f 20 6e 6f  |dows which do no|
0001fa20  74 20 62 65 6c 6f 6e 67  20 74 6f 20 74 68 65 20  |t belong to the |
0001fa30  61 70 70 6c 69 63 61 74  69 6f 6e 2e 20 41 6e 20  |application. An |
0001fa40  3c 65 78 74 65 6e 64 65  64 20 76 65 72 73 69 6f  |<extended versio|
0001fa50  6e 3d 3e 2e 6e 65 73 74  65 64 3e 20 69 73 20 61  |n=>.nested> is a|
0001fa60  76 61 69 6c 61 62 6c 65  0a 23 53 75 62 70 61 67  |vailable.#Subpag|
0001fa70  65 20 6e 65 73 74 65 64  0a 57 69 6d 70 5f 46 6f  |e nested.Wimp_Fo|
0001fa80  72 63 65 52 65 64 72 61  77 20 28 6e 65 73 74 65  |rceRedraw (neste|
0001fa90  64 20 76 65 72 73 69 6f  6e 29 0a 3d 3e 09 52 30  |d version).=>.R0|
0001faa0  20 3d 09 77 69 6e 64 6f  77 20 68 61 6e 64 6c 65  | =.window handle|
0001fab0  0a 09 52 31 20 3d 09 22  54 41 53 4b 22 20 28 26  |..R1 =."TASK" (&|
0001fac0  34 42 35 33 34 31 35 34  29 0a 09 52 32 20 3d 09  |4B534154)..R2 =.|
0001fad0  33 20 2d 20 75 70 64 61  74 65 20 74 68 65 20 74  |3 - update the t|
0001fae0  69 74 6c 65 20 62 61 72  0a 0a 54 68 69 73 20 63  |itle bar..This c|
0001faf0  61 6c 6c 20 63 61 6e 20  62 65 20 75 73 65 64 20  |all can be used |
0001fb00  74 6f 20 75 70 64 61 74  65 20 74 68 65 20 74 69  |to update the ti|
0001fb10  74 6c 65 20 62 61 72 2c  20 72 61 74 68 65 72 20  |tle bar, rather |
0001fb20  74 68 61 6e 20 61 6e 79  20 6f 74 68 65 72 20 66  |than any other f|
0001fb30  6f 72 6d 2e 0a 00 00 00  44 41 54 41 dc 00 00 00  |orm.....DATA....|
0001fb40  46 6f 72 6d 61 74 20 6f  66 20 61 20 49 63 6f 6e  |Format of a Icon|
0001fb50  20 62 6c 6f 63 6b 0a 23  50 61 72 65 6e 74 20 57  | block.#Parent W|
0001fb60  69 6d 70 5f 43 72 65 61  74 65 49 63 6f 6e 0a 4f  |imp_CreateIcon.O|
0001fb70  66 66 73 65 74 09 43 6f  6e 74 65 6e 74 73 0a 23  |ffset.Contents.#|
0001fb80  4c 69 6e 65 0a 30 09 4d  69 6e 69 6d 75 6d 20 78  |Line.0.Minimum x|
0001fb90  20 6f 66 20 69 63 6f 6e  20 62 6f 75 6e 64 69 6e  | of icon boundin|
0001fba0  67 20 62 6f 78 0a 34 09  4d 69 6e 69 6d 75 6d 20  |g box.4.Minimum |
0001fbb0  79 0a 38 09 4d 61 78 69  6d 75 6d 20 78 0a 31 32  |y.8.Maximum x.12|
0001fbc0  09 4d 61 78 69 6d 75 6d  20 79 0a 31 36 09 3c 49  |.Maximum y.16.<I|
0001fbd0  63 6f 6e 20 66 6c 61 67  73 3d 3e 57 69 6d 70 5f  |con flags=>Wimp_|
0001fbe0  69 63 6f 6e 66 6c 61 67  73 3e 0a 32 30 09 31 32  |iconflags>.20.12|
0001fbf0  20 62 79 74 65 73 20 6f  66 20 3c 69 63 6f 6e 20  | bytes of <icon |
0001fc00  64 61 74 61 3d 3e 57 69  6d 70 5f 69 63 6f 6e 64  |data=>Wimp_icond|
0001fc10  61 74 61 3e 44 41 54 41  48 02 00 00 49 63 6f 6e  |ata>DATAH...Icon|
0001fc20  20 62 75 74 74 6f 6e 20  74 79 70 65 73 0a 42 69  | button types.Bi|
0001fc30  74 73 20 31 32 2d 31 35  09 4d 65 61 6e 69 6e 67  |ts 12-15.Meaning|
0001fc40  0a 23 4c 69 6e 65 0a 30  09 09 49 67 6e 6f 72 65  |.#Line.0..Ignore|
0001fc50  20 65 76 65 72 79 74 68  69 6e 67 20 28 65 78 63  | everything (exc|
0001fc60  65 70 74 20 6d 65 6e 75  29 2e 0a 31 09 09 4e 6f  |ept menu)..1..No|
0001fc70  74 69 66 79 20 63 6f 6e  74 69 6e 75 6f 75 73 6c  |tify continuousl|
0001fc80  79 20 77 68 69 6c 65 20  70 6f 69 6e 74 65 72 20  |y while pointer |
0001fc90  69 73 20 6f 76 65 72 20  69 63 6f 6e 2e 0a 32 09  |is over icon..2.|
0001fca0  09 43 6c 69 63 6b 20 28  61 75 74 6f 2d 72 65 70  |.Click (auto-rep|
0001fcb0  65 61 74 29 0a 33 09 09  43 6c 69 63 6b 20 28 6e  |eat).3..Click (n|
0001fcc0  6f 20 61 75 74 6f 2d 72  65 70 65 61 74 29 0a 34  |o auto-repeat).4|
0001fcd0  09 09 43 6c 69 63 6b 20  73 65 6c 65 63 74 73 2c  |..Click selects,|
0001fce0  20 6d 6f 76 65 20 61 77  61 79 20 64 65 73 65 6c  | move away desel|
0001fcf0  65 63 74 73 2e 20 4e 6f  74 69 66 79 20 6f 66 20  |ects. Notify of |
0001fd00  72 65 6c 65 61 73 65 2e  0a 35 09 09 43 6c 69 63  |release..5..Clic|
0001fd10  6b 20 73 65 6c 65 63 74  73 2e 20 44 6f 75 62 6c  |k selects. Doubl|
0001fd20  65 63 6c 69 63 6b 20 6e  6f 74 69 66 69 65 73 20  |eclick notifies |
0001fd30  74 61 73 6b 2e 0a 36 09  09 33 20 2b 20 44 72 61  |task..6..3 + Dra|
0001fd40  67 20 28 2a 31 36 29 2e  0a 37 09 09 34 20 2b 20  |g (*16)..7..4 + |
0001fd50  44 72 61 67 20 28 2a 31  36 29 2e 20 4d 6f 76 69  |Drag (*16). Movi|
0001fd60  6e 67 20 61 77 61 79 20  64 6f 65 73 6e 27 74 20  |ng away doesn't |
0001fd70  64 65 73 65 6c 65 63 74  2e 0a 38 09 09 35 20 2b  |deselect..8..5 +|
0001fd80  20 44 72 61 67 20 28 2a  31 36 29 2e 0a 39 09 09  | Drag (*16)..9..|
0001fd90  27 6d 65 6e 75 27 20 69  63 6f 6e 0a 31 30 09 09  |'menu' icon.10..|
0001fda0  43 6c 69 63 6b 20 28 2a  32 35 36 29 2c 20 44 72  |Click (*256), Dr|
0001fdb0  61 67 20 28 2a 31 36 29  2c 20 44 6f 75 62 6c 65  |ag (*16), Double|
0001fdc0  63 6c 69 63 6b 20 28 2a  31 29 0a 31 31 09 09 43  |click (*1).11..C|
0001fdd0  6c 69 63 6b 20 73 65 6c  65 63 74 73 20 28 2a 31  |lick selects (*1|
0001fde0  29 2c 20 44 72 61 67 20  6e 6f 74 69 66 69 65 73  |), Drag notifies|
0001fdf0  20 28 2a 31 36 29 0a 31  32 2d 31 33 09 09 52 65  | (*16).12-13..Re|
0001fe00  73 65 72 76 65 64 2e 0a  31 34 09 09 43 6c 69 63  |served..14..Clic|
0001fe10  6b 20 63 61 75 73 65 73  20 69 74 20 74 6f 20 67  |k causes it to g|
0001fe20  61 69 6e 20 63 61 72 65  74 2e 20 43 61 6e 20 61  |ain caret. Can a|
0001fe30  6c 73 6f 20 44 72 61 67  0a 31 35 09 09 43 6c 69  |lso Drag.15..Cli|
0001fe40  63 6b 20 63 61 75 73 65  73 20 69 74 20 74 6f 20  |ck causes it to |
0001fe50  67 61 69 6e 20 63 61 72  65 74 2e 0a 44 41 54 41  |gain caret..DATA|
0001fe60  b8 02 00 00 49 63 6f 6e  20 44 61 74 61 0a 49 6e  |....Icon Data.In|
0001fe70  74 65 70 72 65 74 61 74  69 6f 6e 20 76 61 72 69  |tepretation vari|
0001fe80  65 73 20 61 63 63 6f 72  64 69 6e 67 20 74 6f 20  |es according to |
0001fe90  74 68 65 73 65 20 74 68  72 65 65 20 62 69 74 73  |these three bits|
0001fea0  20 3a 0a 49 6e 64 69 72  65 63 74 65 64 28 38 29  | :.Indirected(8)|
0001feb0  2c 20 53 70 72 69 74 65  28 31 29 20 61 6e 64 20  |, Sprite(1) and |
0001fec0  54 65 78 74 28 30 29 2e  0a 54 65 78 74 20 70 6c  |Text(0)..Text pl|
0001fed0  75 73 20 73 70 72 69 74  65 20 69 63 6f 6e 73 20  |us sprite icons |
0001fee0  61 6c 73 6f 20 68 61 76  65 20 61 20 73 70 65 63  |also have a spec|
0001fef0  69 61 6c 20 3c 6a 75 73  74 69 66 69 63 61 74 69  |ial <justificati|
0001ff00  6f 6e 3d 3e 77 69 6d 70  5f 69 63 6f 6e 70 6f 73  |on=>wimp_iconpos|
0001ff10  69 74 69 6f 6e 73 3e 2e  0a 0a 49 53 54 09 44 61  |itions>...IST.Da|
0001ff20  74 61 0a 23 4c 69 6e 65  0a 30 30 30 09 4e 6f 74  |ta.#Line.000.Not|
0001ff30  20 75 73 65 64 0a 30 30  31 09 54 65 78 74 20 53  | used.001.Text S|
0001ff40  74 72 69 6e 67 2e 20 4d  61 78 20 31 32 20 63 68  |tring. Max 12 ch|
0001ff50  61 72 61 63 74 65 72 73  20 6c 6f 6e 67 2e 0a 30  |aracters long..0|
0001ff60  31 30 09 53 70 72 69 74  65 6e 61 6d 65 2e 0a 30  |10.Spritename..0|
0001ff70  31 31 09 54 65 78 74 20  61 6e 64 20 53 70 72 69  |11.Text and Spri|
0001ff80  74 65 6e 61 6d 65 0a 31  30 30 09 4e 6f 74 20 75  |tename.100.Not u|
0001ff90  73 65 64 0a 0a 31 30 31  09 2b 30 09 50 6f 69 6e  |sed..101.+0.Poin|
0001ffa0  74 65 72 20 74 6f 20 74  65 78 74 20 62 75 66 66  |ter to text buff|
0001ffb0  65 72 0a 09 2b 34 09 50  6f 69 6e 74 65 72 20 3c  |er..+4.Pointer <|
0001ffc0  76 61 6c 69 64 61 74 69  6f 6e 20 73 74 72 69 6e  |validation strin|
0001ffd0  67 3d 3e 57 69 6d 70 5f  76 61 6c 69 64 61 74 69  |g=>Wimp_validati|
0001ffe0  6f 6e 73 74 72 69 6e 67  3e 0a 09 2b 38 09 42 75  |onstring>..+8.Bu|
0001fff0  66 66 65 72 20 6c 65 6e  67 74 68 0a 0a 31 31 30  |ffer length..110|
00020000  09 2b 30 09 50 6f 69 6e  74 65 72 20 74 6f 20 73  |.+0.Pointer to s|
00020010  70 72 69 74 65 20 6f 72  20 73 70 72 69 74 65 6e  |prite or spriten|
00020020  61 6d 65 2e 0a 09 2b 34  09 50 6f 69 6e 74 65 72  |ame...+4.Pointer|
00020030  20 74 6f 20 73 70 72 69  74 65 20 63 6f 6e 74 72  | to sprite contr|
00020040  6f 6c 20 62 6c 6f 63 6b  20 28 2b 31 20 66 6f 72  |ol block (+1 for|
00020050  20 57 69 6d 70 29 0a 09  2b 38 09 30 20 69 66 20  | Wimp)..+8.0 if |
00020060  28 2b 30 29 20 69 73 20  73 70 72 69 74 65 70 6f  |(+0) is spritepo|
00020070  69 6e 74 65 72 2c 20 6c  65 6e 67 74 68 20 69 66  |inter, length if|
00020080  20 6e 61 6d 65 70 6f 69  6e 74 65 72 2e 0a 0a 31  | namepointer...1|
00020090  31 31 09 2b 30 09 50 6f  69 6e 74 65 72 20 74 6f  |11.+0.Pointer to|
000200a0  20 74 65 78 74 20 62 75  66 66 65 72 0a 09 2b 34  | text buffer..+4|
000200b0  09 50 6f 69 6e 74 65 72  20 3c 76 61 6c 69 64 61  |.Pointer <valida|
000200c0  74 69 6f 6e 20 73 74 72  69 6e 67 3d 3e 57 69 6d  |tion string=>Wim|
000200d0  70 5f 76 61 6c 69 64 61  74 69 6f 6e 73 74 72 69  |p_validationstri|
000200e0  6e 67 3e 2c 20 77 68 69  63 68 20 63 61 6e 20 63  |ng>, which can c|
000200f0  6f 6e 74 61 69 6e 20 73  70 72 69 74 65 6e 61 6d  |ontain spritenam|
00020100  65 2e 0a 09 2b 38 09 42  75 66 66 65 72 20 6c 65  |e...+8.Buffer le|
00020110  6e 67 74 68 44 41 54 41  c7 02 00 00 49 63 6f 6e  |ngthDATA....Icon|
00020120  20 66 6c 61 67 73 0a 42  69 74 73 09 4d 65 61 6e  | flags.Bits.Mean|
00020130  69 6e 67 20 77 68 65 6e  20 73 65 74 0a 23 4c 69  |ing when set.#Li|
00020140  6e 65 0a 30 09 49 63 6f  6e 20 63 6f 6e 74 61 69  |ne.0.Icon contai|
00020150  6e 73 20 74 65 78 74 2e  0a 31 09 49 63 6f 6e 20  |ns text..1.Icon |
00020160  63 6f 6e 74 61 69 6e 73  20 61 20 73 70 72 69 74  |contains a sprit|
00020170  65 2e 0a 32 09 49 63 6f  6e 20 68 61 73 20 61 20  |e..2.Icon has a |
00020180  62 6f 72 64 65 72 2e 0a  33 09 43 6f 6e 74 65 6e  |border..3.Conten|
00020190  74 73 20 63 65 6e 74 65  72 65 64 20 68 6f 72 69  |ts centered hori|
000201a0  7a 6f 6e 74 61 6c 6c 79  2e 0a 34 09 43 6f 6e 74  |zontally..4.Cont|
000201b0  65 6e 74 73 20 63 65 6e  74 65 72 65 64 20 76 65  |ents centered ve|
000201c0  72 74 69 63 61 6c 6c 79  2e 0a 35 09 49 63 6f 6e  |rtically..5.Icon|
000201d0  20 68 61 73 20 61 20 66  69 6c 6c 65 64 20 62 61  | has a filled ba|
000201e0  63 6b 67 72 6f 75 6e 64  2e 0a 36 09 54 65 78 74  |ckground..6.Text|
000201f0  20 69 73 20 61 6e 74 69  2d 61 6c 69 61 73 65 64  | is anti-aliased|
00020200  20 66 6f 6e 74 2e 0a 37  09 49 63 6f 6e 20 6e 65  | font..7.Icon ne|
00020210  65 64 73 20 74 6f 20 62  65 20 72 65 64 72 61 77  |eds to be redraw|
00020220  6e 20 63 6f 6d 70 6c 65  74 65 6c 79 2e 0a 38 09  |n completely..8.|
00020230  49 63 6f 6e 20 64 61 74  61 20 69 73 20 69 6e 64  |Icon data is ind|
00020240  69 72 65 63 74 65 64 2e  0a 39 09 54 65 78 74 20  |irected..9.Text |
00020250  69 73 20 72 69 67 68 74  2d 6a 75 73 74 69 66 69  |is right-justifi|
00020260  65 64 2e 0a 31 30 09 49  66 20 73 65 6c 65 63 74  |ed..10.If select|
00020270  65 64 20 77 69 74 68 20  61 64 6a 75 73 74 2c 20  |ed with adjust, |
00020280  64 6f 6e 27 74 20 63 61  6e 63 65 6c 20 6f 74 68  |don't cancel oth|
00020290  65 72 73 2e 0a 31 31 09  44 69 73 70 6c 61 79 20  |ers..11.Display |
000202a0  73 70 72 69 74 65 20 61  74 20 68 61 6c 66 20 73  |sprite at half s|
000202b0  69 7a 65 2e 0a 31 32 2d  31 35 09 3c 49 63 6f 6e  |ize..12-15.<Icon|
000202c0  20 62 75 74 74 6f 6e 20  74 79 70 65 3d 3e 57 69  | button type=>Wi|
000202d0  6d 70 5f 69 63 6f 6e 62  75 74 74 6f 6e 3e 2e 0a  |mp_iconbutton>..|
000202e0  31 36 2d 31 39 09 45 78  63 6c 75 73 69 76 65 20  |16-19.Exclusive |
000202f0  53 65 6c 65 63 74 69 6f  6e 20 47 72 6f 75 70 2e  |Selection Group.|
00020300  0a 32 30 09 52 65 73 65  72 76 65 64 2c 20 6d 75  |.20.Reserved, mu|
00020310  73 74 20 62 65 20 30 0a  32 31 09 49 63 6f 6e 20  |st be 0.21.Icon |
00020320  69 73 20 73 65 6c 65 63  74 65 64 20 62 79 20 75  |is selected by u|
00020330  73 65 72 2c 20 61 6e 64  20 69 73 20 69 6e 76 65  |ser, and is inve|
00020340  72 74 65 64 2e 0a 32 32  09 49 63 6f 6e 20 69 73  |rted..22.Icon is|
00020350  20 75 6e 2d 73 65 6c 65  63 74 61 62 6c 65 20 28  | un-selectable (|
00020360  73 68 61 64 65 64 29 0a  32 33 09 49 63 6f 6e 20  |shaded).23.Icon |
00020370  69 73 20 64 65 6c 65 74  65 64 2e 0a 32 34 2d 32  |is deleted..24-2|
00020380  37 09 46 6f 72 65 67 72  6f 75 6e 64 20 63 6f 6c  |7.Foreground col|
00020390  6f 75 72 09 5c 5c 20 49  66 20 62 69 74 20 36 20  |our.\\ If bit 6 |
000203a0  3d 20 31 20 74 68 65 6e  20 74 68 69 73 0a 32 38  |= 1 then this.28|
000203b0  2d 33 31 09 42 61 63 6b  67 72 6f 75 6e 64 20 63  |-31.Background c|
000203c0  6f 6c 6f 75 72 09 2f 20  20 69 73 20 74 68 65 20  |olour./  is the |
000203d0  66 6f 6e 74 68 61 6e 64  6c 65 2e 00 44 41 54 41  |fonthandle..DATA|
000203e0  ce 02 00 00 49 63 6f 6e  20 72 65 6c 61 74 69 76  |....Icon relativ|
000203f0  65 20 70 6f 73 69 74 69  6f 6e 73 0a 54 68 65 20  |e positions.The |
00020400  70 6f 73 69 74 69 6f 6e  20 6f 66 20 61 6e 20 69  |position of an i|
00020410  6e 64 69 72 65 63 74 65  64 20 74 65 78 74 20 70  |ndirected text p|
00020420  6c 75 73 20 73 70 72 69  74 65 20 69 63 6f 6e 20  |lus sprite icon |
00020430  69 73 20 64 65 74 65 72  6d 69 6e 65 64 20 62 79  |is determined by|
00020440  20 74 68 65 20 48 6f 72  69 7a 6f 6e 74 61 6c 2c  | the Horizontal,|
00020450  20 56 65 72 74 69 63 61  6c 20 61 6e 64 20 52 69  | Vertical and Ri|
00020460  67 68 74 20 6a 75 73 74  69 66 69 65 64 20 62 69  |ght justified bi|
00020470  74 73 20 28 33 2c 34 20  61 6e 64 20 39 29 3a 0a  |ts (3,4 and 9):.|
00020480  0a 48 56 52 09 48 6f 72  69 7a 6f 6e 74 61 6c 20  |.HVR.Horizontal |
00020490  61 64 6a 75 73 74 09 09  56 65 72 74 69 63 61 6c  |adjust..Vertical|
000204a0  20 61 64 6a 75 73 74 0a  23 4c 69 6e 65 0a 30 30  | adjust.#Line.00|
000204b0  30 09 54 65 78 74 20 26  20 73 70 72 69 74 65 20  |0.Text & sprite |
000204c0  6c 65 66 74 20 6a 75 73  74 69 66 69 65 64 09 54  |left justified.T|
000204d0  65 78 74 20 61 74 20 62  6f 74 74 6f 6d 2c 20 73  |ext at bottom, s|
000204e0  70 72 69 74 65 20 61 74  20 74 6f 70 0a 30 30 31  |prite at top.001|
000204f0  09 54 65 78 74 20 26 20  73 70 72 69 74 65 20 72  |.Text & sprite r|
00020500  69 67 68 74 20 6a 75 73  74 69 66 69 65 64 09 54  |ight justified.T|
00020510  65 78 74 20 61 74 20 62  6f 74 74 6f 6d 0a 30 31  |ext at bottom.01|
00020520  30 09 53 70 72 69 74 65  20 61 74 20 6c 65 66 74  |0.Sprite at left|
00020530  2c 20 74 65 78 74 20 3e  20 2b 36 20 75 6e 69 74  |, text > +6 unit|
00020540  73 09 54 65 78 74 20 26  20 73 70 72 69 74 65 20  |s.Text & sprite |
00020550  63 65 6e 74 65 72 65 64  0a 30 31 31 09 54 65 78  |centered.011.Tex|
00020560  74 20 61 74 20 6c 65 66  74 2c 20 73 70 72 69 74  |t at left, sprit|
00020570  65 20 61 74 20 72 69 67  68 74 09 54 65 78 74 20  |e at right.Text |
00020580  26 20 73 70 72 69 74 65  20 63 65 6e 74 65 72 65  |& sprite centere|
00020590  64 0a 31 30 30 09 54 65  78 74 20 26 20 73 70 72  |d.100.Text & spr|
000205a0  69 74 65 20 63 65 6e 74  65 72 65 64 09 09 54 65  |ite centered..Te|
000205b0  78 74 20 61 74 20 62 6f  74 74 6f 6d 2c 20 73 70  |xt at bottom, sp|
000205c0  72 69 74 65 20 61 74 20  74 6f 70 0a 31 30 31 09  |rite at top.101.|
000205d0  54 65 78 74 20 26 20 73  70 72 69 74 65 20 63 65  |Text & sprite ce|
000205e0  6e 74 65 72 65 64 09 09  54 65 78 74 20 61 74 20  |ntered..Text at |
000205f0  74 6f 70 2c 20 73 70 72  69 74 65 20 61 74 20 62  |top, sprite at b|
00020600  6f 74 74 6f 6d 0a 31 31  30 09 54 65 78 74 20 26  |ottom.110.Text &|
00020610  20 73 70 72 69 74 65 20  63 65 6e 74 65 72 65 64  | sprite centered|
00020620  09 09 54 65 78 74 20 26  20 73 70 72 69 74 65 20  |..Text & sprite |
00020630  63 65 6e 74 65 72 65 64  0a 31 31 31 09 54 65 78  |centered.111.Tex|
00020640  74 20 61 74 20 72 69 67  68 74 2c 20 73 70 72 69  |t at right, spri|
00020650  74 65 20 61 74 20 6c 65  66 74 09 54 65 78 74 20  |te at left.Text |
00020660  26 20 73 70 72 69 74 65  20 63 65 6e 74 65 72 65  |& sprite centere|
00020670  64 0a 0a 4e 6f 74 65 3a  20 49 66 20 74 65 78 74  |d..Note: If text|
00020680  20 61 6e 64 20 73 70 72  69 74 65 20 6f 76 65 72  | and sprite over|
00020690  6c 61 70 73 2c 20 74 65  78 74 20 77 69 6c 6c 20  |laps, text will |
000206a0  62 65 20 6f 6e 20 74 6f  70 2e 00 00 44 41 54 41  |be on top...DATA|
000206b0  79 07 00 00 57 69 6d 70  5f 49 6e 69 74 69 61 6c  |y...Wimp_Initial|
000206c0  69 73 65 20 20 28 26 34  30 30 43 30 29 0a 23 50  |ise  (&400C0).#P|
000206d0  61 72 65 6e 74 20 57 69  6d 70 5f 0a 3d 3e 09 52  |arent Wimp_.=>.R|
000206e0  30 20 3d 09 4c 61 73 74  20 3c 57 69 6d 70 20 76  |0 =.Last <Wimp v|
000206f0  65 72 73 69 6f 6e 20 6b  6e 6f 77 6e 3d 3e 2e 6b  |ersion known=>.k|
00020700  6e 6f 77 6e 3e 20 2a 20  31 30 30 0a 09 52 31 20  |nown> * 100..R1 |
00020710  3d 09 22 54 41 53 4b 22  20 28 26 34 42 35 33 34  |=."TASK" (&4B534|
00020720  31 35 34 29 0a 09 52 32  20 3d 09 70 6f 69 6e 74  |154)..R2 =.point|
00020730  65 72 20 74 6f 20 73 68  6f 72 74 20 64 65 73 63  |er to short desc|
00020740  72 69 70 74 69 6f 6e 20  66 6f 72 20 74 61 73 6b  |ription for task|
00020750  6d 61 6e 61 67 65 72 0a  28 56 65 72 73 69 6f 6e  |manager.(Version|
00020760  20 33 2e 30 30 20 6f 72  20 6c 61 74 65 72 29 20  | 3.00 or later) |
00020770  3a 0a 09 52 33 20 3d 09  70 6f 69 6e 74 65 72 20  |:..R3 =.pointer |
00020780  74 6f 20 6c 69 73 74 20  6f 66 20 61 63 63 65 70  |to list of accep|
00020790  74 61 62 6c 65 20 3c 75  73 65 72 20 6d 65 73 73  |table <user mess|
000207a0  61 67 65 73 3d 3e 4d 73  67 5f 3e 2c 20 74 65 72  |ages=>Msg_>, ter|
000207b0  6d 69 6e 61 74 65 64 20  62 79 20 61 20 30 20 77  |minated by a 0 w|
000207c0  6f 72 64 0a 23 09 20 09  30 20 66 6f 72 20 61 6c  |ord.#. .0 for al|
000207d0  6c 20 6d 65 73 73 61 67  65 73 20 28 76 65 72 79  |l messages (very|
000207e0  20 62 61 64 20 70 6c 61  6e 29 0a 23 20 57 68 61  | bad plan).# Wha|
000207f0  74 20 74 68 65 79 20 64  6f 6e 27 74 20 6b 6e 6f  |t they don't kno|
00020800  77 20 74 68 65 79 20 63  61 6e 27 74 20 64 6f 2e  |w they can't do.|
00020810  20 3a 2d 29 0a 20 20 20  20 20 20 20 20 0a 3c 3d  | :-).        .<=|
00020820  09 52 30 20 3d 09 43 75  72 72 65 6e 74 20 57 69  |.R0 =.Current Wi|
00020830  6d 70 20 76 65 72 73 69  6f 6e 20 2a 20 31 30 30  |mp version * 100|
00020840  0a 09 52 31 20 3d 09 74  61 73 6b 20 68 61 6e 64  |..R1 =.task hand|
00020850  6c 65 0a 0a 49 66 20 61  20 6c 69 73 74 20 6f 66  |le..If a list of|
00020860  20 75 73 65 72 20 6d 65  73 73 61 67 65 73 20 69  | user messages i|
00020870  73 20 67 69 76 65 6e 20  74 68 65 20 74 61 73 6b  |s given the task|
00020880  20 77 69 6c 6c 20 6e 6f  74 20 62 65 20 70 6f 6c  | will not be pol|
00020890  6c 65 64 20 69 6e 20 66  6f 72 20 6f 74 68 65 72  |led in for other|
000208a0  20 6d 65 73 73 61 67 65  73 20 2d 20 73 77 61 70  | messages - swap|
000208b0  70 69 6e 67 20 74 68 65  20 6d 65 6d 6f 72 79 20  |ping the memory |
000208c0  61 73 73 6f 63 69 61 74  65 64 20 77 69 74 68 20  |associated with |
000208d0  74 61 73 6b 73 20 69 73  20 74 69 6d 65 20 63 6f  |tasks is time co|
000208e0  6e 73 75 6d 69 6e 67 2c  20 73 6f 20 6e 6f 74 20  |nsuming, so not |
000208f0  68 61 76 69 6e 67 20 74  6f 20 64 6f 20 74 68 69  |having to do thi|
00020900  73 20 66 6f 72 20 61 20  6d 65 73 73 61 67 65 20  |s for a message |
00020910  74 68 61 74 20 74 68 65  20 74 61 73 6b 20 77 69  |that the task wi|
00020920  6c 6c 20 6f 6e 6c 79 20  69 67 6e 6f 72 65 20 67  |ll only ignore g|
00020930  69 76 65 73 20 61 20 6c  61 72 67 65 20 73 70 65  |ives a large spe|
00020940  65 64 75 70 2e 20 54 68  65 20 74 61 73 6b 20 63  |edup. The task c|
00020950  61 6e 20 61 6c 74 65 72  20 74 68 69 73 20 6c 69  |an alter this li|
00020960  73 74 20 69 66 20 6e 65  63 65 73 73 61 72 79 20  |st if necessary |
00020970  77 69 74 68 20 3c 57 69  6d 70 5f 41 64 64 4d 65  |with <Wimp_AddMe|
00020980  73 73 61 67 65 73 3e 20  61 6e 64 20 3c 57 69 6d  |ssages> and <Wim|
00020990  70 5f 52 65 6d 6f 76 65  4d 65 73 73 61 67 65 73  |p_RemoveMessages|
000209a0  3e 2e 20 42 65 66 6f 72  65 20 74 68 65 20 70 72  |>. Before the pr|
000209b0  6f 67 72 61 6d 20 74 65  72 6d 69 6e 61 74 65 73  |ogram terminates|
000209c0  2c 20 69 74 20 73 68 6f  75 6c 64 20 63 61 6c 6c  |, it should call|
000209d0  20 3c 57 69 6d 70 5f 43  6c 6f 73 65 44 6f 77 6e  | <Wimp_CloseDown|
000209e0  3e 2e 0a 23 73 75 62 70  61 67 65 20 6b 6e 6f 77  |>..#subpage know|
000209f0  6e 0a 4b 6e 6f 77 6e 20  57 69 6d 70 20 76 65 72  |n.Known Wimp ver|
00020a00  73 69 6f 6e 0a 56 61 6c  75 65 09 4d 65 61 6e 69  |sion.Value.Meani|
00020a10  6e 67 0a 23 4c 69 6e 65  0a 32 30 30 09 52 49 53  |ng.#Line.200.RIS|
00020a20  43 20 4f 53 20 32 20 57  69 6e 64 6f 77 4d 61 6e  |C OS 2 WindowMan|
00020a30  61 67 65 72 0a 09 4e 6f  20 75 73 65 20 6f 66 20  |ager..No use of |
00020a40  70 6f 6c 6c 77 6f 72 64  73 2c 20 69 6e 64 69 72  |pollwords, indir|
00020a50  65 63 74 65 64 20 6d 65  6e 75 20 74 69 74 6c 65  |ected menu title|
00020a60  73 2c 20 6d 65 6e 75 20  68 65 6c 70 2c 20 76 61  |s, menu help, va|
00020a70  6c 69 64 61 74 69 6f 6e  20 73 74 72 69 6e 67 73  |lidation strings|
00020a80  20 52 2c 20 4b 20 61 6e  64 20 50 2c 20 6f 6e 6c  | R, K and P, onl|
00020a90  79 20 3c 57 69 6d 70 5f  52 65 61 64 53 79 73 49  |y <Wimp_ReadSysI|
00020aa0  6e 66 6f 3e 20 30 20 73  75 70 70 6f 72 74 65 64  |nfo> 0 supported|
00020ab0  2c 20 73 70 72 69 74 65  73 20 69 6e 20 69 63 6f  |, sprites in ico|
00020ac0  6e 73 20 64 6f 20 6e 6f  74 20 75 73 65 20 63 6f  |ns do not use co|
00020ad0  6c 6f 75 72 20 74 72 61  6e 73 6c 61 74 69 6f 6e  |lour translation|
00020ae0  73 2c 20 6d 65 73 73 61  67 65 73 20 6d 61 79 20  |s, messages may |
00020af0  6e 6f 74 20 62 65 20 27  66 69 6c 74 65 72 65 64  |not be 'filtered|
00020b00  27 20 77 69 74 68 20 3c  57 69 6d 70 5f 41 64 64  |' with <Wimp_Add|
00020b10  4d 65 73 73 61 67 65 73  3e 2c 20 65 74 63 0a 33  |Messages>, etc.3|
00020b20  30 30 09 52 49 53 43 20  4f 53 20 33 2e 30 30 20  |00.RISC OS 3.00 |
00020b30  57 69 6e 64 6f 77 4d 61  6e 61 67 65 72 0a 09 4d  |WindowManager..M|
00020b40  65 73 73 61 67 65 20 27  66 69 6c 74 65 72 69 6e  |essage 'filterin|
00020b50  67 27 20 69 73 20 62 72  6f 6b 65 6e 2c 20 3c 57  |g' is broken, <W|
00020b60  69 6d 70 5f 52 65 61 64  53 79 73 49 6e 66 6f 3e  |imp_ReadSysInfo>|
00020b70  20 31 20 74 6f 20 37 20  73 75 70 70 6f 72 74 65  | 1 to 7 supporte|
00020b80  64 0a 33 31 30 09 52 49  53 43 20 4f 53 20 33 2e  |d.310.RISC OS 3.|
00020b90  31 30 20 57 69 6e 64 6f  77 4d 61 6e 61 67 65 72  |10 WindowManager|
00020ba0  0a 09 4d 65 73 73 61 67  65 20 27 66 69 6c 74 65  |..Message 'filte|
00020bb0  72 69 6e 67 27 20 66 69  78 65 64 2e 20 4e 6f 20  |ring' fixed. No |
00020bc0  75 73 65 20 6f 66 20 3c  57 69 6d 70 5f 54 65 78  |use of <Wimp_Tex|
00020bd0  74 4f 70 3e 2c 20 3c 57  69 6d 70 5f 53 65 74 57  |tOp>, <Wimp_SetW|
00020be0  61 74 63 68 64 6f 67 53  74 61 74 65 3e 2c 20 3c  |atchdogState>, <|
00020bf0  57 69 6d 70 5f 52 65 73  69 7a 65 49 63 6f 6e 3e  |Wimp_ResizeIcon>|
00020c00  2e 0a 33 35 30 09 52 49  53 43 20 4f 53 20 33 2e  |..350.RISC OS 3.|
00020c10  35 2d 37 20 57 69 6e 64  6f 77 4d 61 6e 61 67 65  |5-7 WindowManage|
00020c20  72 0a 09 3c 57 69 6d 70  5f 52 65 61 64 53 79 73  |r..<Wimp_ReadSys|
00020c30  49 6e 66 6f 3e 20 38 20  74 6f 20 31 30 20 73 75  |Info> 8 to 10 su|
00020c40  70 70 6f 72 74 65 64 2c  20 3c 57 69 6d 70 5f 52  |pported, <Wimp_R|
00020c50  65 70 6f 72 74 45 72 72  6f 72 3e 20 6d 61 79 20  |eportError> may |
00020c60  68 61 76 65 20 65 78 74  72 61 20 62 75 74 74 6f  |have extra butto|
00020c70  6e 73 0a 33 38 30 09 53  6f 66 74 6c 6f 61 64 61  |ns.380.Softloada|
00020c80  62 6c 65 20 6e 65 73 74  65 64 20 57 69 6e 64 6f  |ble nested Windo|
00020c90  77 4d 61 6e 61 67 65 72  0a 09 4e 65 73 74 61 62  |wManager..Nestab|
00020ca0  6c 65 20 77 69 6e 64 6f  77 73 20 61 64 64 65 64  |le windows added|
00020cb0  2c 20 3c 76 61 6c 69 64  61 74 69 6f 6e 20 73 74  |, <validation st|
00020cc0  72 69 6e 67 20 43 3d 3e  57 69 6d 70 5f 76 61 6c  |ring C=>Wimp_val|
00020cd0  69 64 61 74 69 6f 6e 73  74 72 69 6e 67 2e 43 3e  |idationstring.C>|
00020ce0  20 61 64 64 65 64 2c 20  68 20 6f 70 74 69 6f 6e  | added, h option|
00020cf0  20 69 6e 20 3c 76 61 6c  69 64 61 74 69 6f 6e 20  | in <validation |
00020d00  73 74 72 69 6e 67 20 4c  3d 3e 57 69 6d 70 5f 76  |string L=>Wimp_v|
00020d10  61 6c 69 64 61 74 69 6f  6e 73 74 72 69 6e 67 2e  |alidationstring.|
00020d20  4c 3e 20 69 6d 70 6c 65  6d 65 6e 74 65 64 2c 20  |L> implemented, |
00020d30  27 70 61 72 74 69 61 6c  27 20 66 75 6c 6c 20 73  |'partial' full s|
00020d40  69 7a 65 20 77 69 6e 64  6f 77 73 20 69 6d 70 6c  |ize windows impl|
00020d50  65 6d 65 6e 74 65 64 2c  20 77 69 6e 64 6f 77 73  |emented, windows|
00020d60  20 6d 61 79 20 6e 6f 77  20 62 65 20 6f 70 65 6e  | may now be open|
00020d70  65 64 20 6f 72 20 66 6f  72 63 65 61 62 6c 79 20  |ed or forceably |
00020d80  72 65 64 72 61 77 6e 20  62 79 20 6f 74 68 65 72  |redrawn by other|
00020d90  20 74 61 73 6b 73 0a 0a  57 69 74 68 69 6e 20 74  | tasks..Within t|
00020da0  68 69 73 20 6c 69 73 74  20 69 74 20 69 73 20 61  |his list it is a|
00020db0  73 73 75 6d 65 64 20 74  68 61 74 20 74 68 65 20  |ssumed that the |
00020dc0  66 65 61 74 75 72 65 73  20 6e 6f 74 20 70 72 65  |features not pre|
00020dd0  73 65 6e 74 20 69 6e 20  68 69 67 68 65 72 20 76  |sent in higher v|
00020de0  65 72 73 69 6f 6e 73 20  6f 66 20 74 68 65 20 57  |ersions of the W|
00020df0  69 6e 64 6f 77 4d 61 6e  61 67 65 72 20 61 72 65  |indowManager are|
00020e00  20 61 6c 73 6f 20 6e 6f  74 20 70 72 65 73 65 6e  | also not presen|
00020e10  74 20 69 6e 20 6c 6f 77  65 72 20 76 65 72 73 69  |t in lower versi|
00020e20  6f 6e 73 2e 0a 00 00 00  44 41 54 41 ea 00 00 00  |ons.....DATA....|
00020e30  57 69 6d 70 5f 4f 70 65  6e 54 65 6d 70 6c 61 74  |Wimp_OpenTemplat|
00020e40  65 20 20 28 26 34 30 30  44 39 29 0a 23 50 61 72  |e  (&400D9).#Par|
00020e50  65 6e 74 20 57 69 6d 70  5f 0a 3d 3e 09 52 31 20  |ent Wimp_.=>.R1 |
00020e60  3d 09 70 61 74 68 6e 61  6d 65 20 6f 66 20 74 65  |=.pathname of te|
00020e70  6d 70 6c 61 74 65 20 66  69 6c 65 20 74 6f 20 6f  |mplate file to o|
00020e80  70 65 6e 0a 3c 3d 09 52  30 20 63 6f 72 72 75 70  |pen.<=.R0 corrup|
00020e90  74 0a 0a 54 68 69 73 20  63 61 6c 6c 20 6f 70 65  |t..This call ope|
00020ea0  6e 73 20 74 68 65 20 73  61 69 64 20 74 65 6d 70  |ns the said temp|
00020eb0  6c 61 74 65 20 66 69 6c  65 2e 0a 4e 6f 77 20 79  |late file..Now y|
00020ec0  6f 75 20 63 61 6e 20 64  6f 20 72 65 70 65 61 74  |ou can do repeat|
00020ed0  65 64 20 63 61 6c 6c 73  20 74 6f 20 3c 57 69 6d  |ed calls to <Wim|
00020ee0  70 5f 4c 6f 61 64 54 65  6d 70 6c 61 74 65 3e 2c  |p_LoadTemplate>,|
00020ef0  20 61 6e 64 20 66 69 6e  61 6c 6c 79 20 3c 57 69  | and finally <Wi|
00020f00  6d 70 5f 43 6c 6f 73 65  54 65 6d 70 6c 61 74 65  |mp_CloseTemplate|
00020f10  3e 2e 00 00 44 41 54 41  bc 05 00 00 57 69 6d 70  |>...DATA....Wimp|
00020f20  5f 4f 70 65 6e 57 69 6e  64 6f 77 20 20 28 26 34  |_OpenWindow  (&4|
00020f30  30 30 43 35 29 0a 23 50  61 72 65 6e 74 20 57 69  |00C5).#Parent Wi|
00020f40  6d 70 5f 0a 3d 3e 09 52  31 20 3d 09 50 6f 69 6e  |mp_.=>.R1 =.Poin|
00020f50  74 65 72 20 74 6f 20 62  6c 6f 63 6b 20 3a 0a 09  |ter to block :..|
00020f60  20 09 20 20 20 30 09 57  69 6e 64 6f 77 20 68 61  | .   0.Window ha|
00020f70  6e 64 6c 65 0a 09 20 09  20 20 20 34 09 56 69 73  |ndle.. .   4.Vis|
00020f80  69 62 6c 65 20 61 72 65  61 20 6d 69 6e 69 6d 75  |ible area minimu|
00020f90  6d 20 78 0a 09 20 09 20  20 20 38 09 56 69 73 69  |m x.. .   8.Visi|
00020fa0  62 6c 65 20 61 72 65 61  20 6d 69 6e 69 6d 75 6d  |ble area minimum|
00020fb0  20 79 0a 09 20 09 20 20  31 32 09 56 69 73 69 62  | y.. .  12.Visib|
00020fc0  6c 65 20 61 72 65 61 20  6d 61 78 69 6d 75 6d 20  |le area maximum |
00020fd0  78 0a 09 20 09 20 20 31  36 09 56 69 73 69 62 6c  |x.. .  16.Visibl|
00020fe0  65 20 61 72 65 61 20 6d  61 78 69 6d 75 6d 20 79  |e area maximum y|
00020ff0  0a 09 20 09 20 20 32 30  09 53 63 72 6f 6c 6c 20  |.. .  20.Scroll |
00021000  78 20 6f 66 66 73 65 74  0a 09 20 09 20 20 32 34  |x offset.. .  24|
00021010  09 53 63 72 6f 6c 6c 20  79 20 6f 66 66 73 65 74  |.Scroll y offset|
00021020  0a 09 20 09 20 20 32 38  09 48 61 6e 64 6c 65 20  |.. .  28.Handle |
00021030  74 6f 20 6f 70 65 6e 20  77 69 6e 64 6f 77 20 62  |to open window b|
00021040  65 68 69 6e 64 0a 09 20  09 20 09 28 2d 31 3d 74  |ehind.. . .(-1=t|
00021050  6f 70 2c 20 2d 32 3d 62  6f 74 74 6f 6d 2c 20 2d  |op, -2=bottom, -|
00021060  33 3d 68 69 64 65 2f 69  63 6f 6e 69 73 65 29 0a  |3=hide/iconise).|
00021070  3c 3d 09 62 6c 6f 63 6b  20 61 74 20 52 31 20 75  |<=.block at R1 u|
00021080  70 64 61 74 65 64 20 74  6f 20 69 6e 64 69 63 61  |pdated to indica|
00021090  74 65 20 6e 65 77 20 6c  6f 63 61 74 69 6f 6e 2e  |te new location.|
000210a0  20 54 68 69 73 20 69 73  20 6e 6f 77 20 61 6e 20  | This is now an |
000210b0  6f 66 66 69 63 69 61 6c  20 65 66 66 65 63 74 2e  |official effect.|
000210c0  0a 0a 23 54 61 62 0a 54  68 69 73 20 63 61 6c 6c  |..#Tab.This call|
000210d0  20 75 70 64 61 74 65 73  20 74 68 65 20 6c 69 73  | updates the lis|
000210e0  74 20 6f 66 20 61 63 74  69 76 65 20 77 69 6e 64  |t of active wind|
000210f0  6f 77 73 2e 20 49 74 20  69 73 20 75 73 65 64 0a  |ows. It is used.|
00021100  20 20 31 29 09 57 68 65  6e 20 79 6f 75 20 6f 70  |  1).When you op|
00021110  65 6e 20 61 20 77 69 6e  64 6f 77 20 66 6f 72 20  |en a window for |
00021120  74 68 65 20 66 69 72 73  74 20 74 69 6d 65 2c 20  |the first time, |
00021130  61 6e 64 0a 20 20 32 29  09 57 68 65 6e 20 74 68  |and.  2).When th|
00021140  65 20 77 69 6e 64 6f 77  20 6d 6f 76 65 73 2c 20  |e window moves, |
00021150  73 63 72 6f 6c 6c 73 20  6f 72 20 72 65 73 69 7a  |scrolls or resiz|
00021160  65 73 2e 0a 0a 54 68 65  20 57 69 6d 70 20 77 69  |es...The Wimp wi|
00021170  6c 6c 20 69 73 73 75 65  20 72 65 64 72 61 77 20  |ll issue redraw |
00021180  6d 65 73 73 61 67 65 73  20 74 6f 20 79 6f 75 2c  |messages to you,|
00021190  20 69 66 20 6e 65 63 65  73 73 61 72 79 2e 20 55  | if necessary. U|
000211a0  6e 64 65 72 20 74 68 65  20 6e 65 73 74 65 64 20  |nder the nested |
000211b0  57 69 6d 70 2c 20 69 74  73 20 75 73 65 20 69 73  |Wimp, its use is|
000211c0  20 73 6c 69 67 68 74 6c  79 20 3c 64 69 66 66 65  | slightly <diffe|
000211d0  72 65 6e 74 3d 3e 2e 6e  65 73 74 65 64 3e 2e 0a  |rent=>.nested>..|
000211e0  0a 23 74 61 62 0a 4e 6f  74 65 3a 09 50 72 69 6f  |.#tab.Note:.Prio|
000211f0  72 20 74 6f 20 74 68 65  20 6e 65 73 74 65 64 20  |r to the nested |
00021200  57 69 6d 70 20 79 6f 75  20 63 6f 75 6c 64 20 6e  |Wimp you could n|
00021210  6f 74 20 6f 70 65 6e 20  77 69 6e 64 6f 77 73 20  |ot open windows |
00021220  62 65 6c 6f 6e 67 69 6e  67 20 74 6f 20 6f 74 68  |belonging to oth|
00021230  65 72 20 74 61 73 6b 73  2e 20 59 6f 75 20 77 65  |er tasks. You we|
00021240  72 65 20 28 61 6e 64 20  73 74 69 6c 6c 20 61 72  |re (and still ar|
00021250  65 29 20 61 62 6c 65 20  74 6f 20 73 65 6e 64 20  |e) able to send |
00021260  6f 74 68 65 72 20 74 61  73 6b 73 20 3c 6f 70 65  |other tasks <ope|
00021270  6e 20 77 69 6e 64 6f 77  20 72 65 71 75 65 73 74  |n window request|
00021280  73 3d 3e 57 69 6d 70 5f  50 6f 6c 6c 32 3e 2e 0a  |s=>Wimp_Poll2>..|
00021290  23 73 75 62 70 61 67 65  20 6e 65 73 74 65 64 0a  |#subpage nested.|
000212a0  57 69 6d 70 5f 4f 70 65  6e 57 69 6e 64 6f 77 20  |Wimp_OpenWindow |
000212b0  28 6e 65 73 74 65 64 20  76 65 72 73 69 6f 6e 29  |(nested version)|
000212c0  0a 3d 3e 09 52 31 20 3d  09 70 6f 69 6e 74 65 72  |.=>.R1 =.pointer|
000212d0  20 74 6f 20 62 6c 6f 63  6b 20 61 73 20 3c 57 69  | to block as <Wi|
000212e0  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 3e 2c 20  |mp_OpenWindow>, |
000212f0  70 6c 75 73 0a 09 20 09  20 20 33 32 09 57 69 6e  |plus.. .  32.Win|
00021300  64 6f 77 20 66 6c 61 67  73 20 28 69 66 20 62 30  |dow flags (if b0|
00021310  20 6f 66 20 6e 65 73 74  69 6e 67 20 66 6c 61 67  | of nesting flag|
00021320  73 20 73 65 74 29 0a 09  20 09 6f 72 20 30 20 74  |s set).. .or 0 t|
00021330  6f 20 66 6c 75 73 68 20  61 6c 6c 20 70 65 6e 64  |o flush all pend|
00021340  69 6e 67 20 6f 70 65 6e  73 20 74 6f 20 74 68 65  |ing opens to the|
00021350  20 73 63 72 65 65 6e 0a  09 52 32 20 3d 09 22 54  | screen..R2 =."T|
00021360  41 53 4b 22 20 28 26 34  42 35 33 34 31 35 34 29  |ASK" (&4B534154)|
00021370  0a 09 52 33 20 3d 09 77  69 6e 64 6f 77 20 68 61  |..R3 =.window ha|
00021380  6e 64 6c 65 20 6f 66 20  70 61 72 65 6e 74 2c 20  |ndle of parent, |
00021390  6f 72 20 2d 31 20 66 6f  72 20 74 68 65 20 74 6f  |or -1 for the to|
000213a0  70 2d 6c 65 76 65 6c 0a  09 52 34 20 3d 09 3c 6e  |p-level..R4 =.<n|
000213b0  65 73 74 69 6e 67 20 66  6c 61 67 73 3d 3e 57 69  |esting flags=>Wi|
000213c0  6d 70 5f 6e 65 73 74 69  6e 67 66 6c 61 67 73 3e  |mp_nestingflags>|
000213d0  0a 0a 54 68 69 73 20 63  61 6c 6c 20 6f 70 65 6e  |..This call open|
000213e0  73 20 61 20 77 69 6e 64  6f 77 20 77 69 74 68 69  |s a window withi|
000213f0  6e 20 61 6e 6f 74 68 65  72 20 77 69 6e 64 6f 77  |n another window|
00021400  2e 20 4f 6e 6c 79 20 70  72 65 73 65 6e 74 20 6f  |. Only present o|
00021410  6e 20 76 65 72 73 69 6f  6e 73 20 6f 66 20 74 68  |n versions of th|
00021420  65 20 57 69 6e 64 6f 77  20 4d 61 6e 61 67 65 72  |e Window Manager|
00021430  20 6c 61 74 65 72 20 74  68 61 6e 20 33 2e 38 30  | later than 3.80|
00021440  2e 0a 0a 23 74 61 62 0a  4e 6f 74 65 3a 09 55 6e  |...#tab.Note:.Un|
00021450  64 65 72 20 74 68 65 20  6e 65 73 74 65 64 20 57  |der the nested W|
00021460  69 6d 70 20 79 6f 75 20  2a 6d 61 79 2a 20 6d 6f  |imp you *may* mo|
00021470  76 65 20 77 69 6e 64 6f  77 73 20 62 65 6c 6f 6e  |ve windows belon|
00021480  67 69 6e 67 20 74 6f 20  6f 74 68 65 72 20 63 6c  |ging to other cl|
00021490  69 65 6e 74 73 20 77 69  74 68 20 65 69 74 68 65  |ients with eithe|
000214a0  72 20 74 68 65 20 65 78  74 65 6e 64 65 64 20 6f  |r the extended o|
000214b0  72 20 6e 6f 72 6d 61 6c  20 76 65 72 73 69 6f 6e  |r normal version|
000214c0  73 20 6f 66 20 74 68 69  73 20 63 61 6c 6c 2e 0a  |s of this call..|
000214d0  44 41 54 41 13 01 00 00  57 69 6d 70 5f 50 6c 6f  |DATA....Wimp_Plo|
000214e0  74 49 63 6f 6e 20 20 28  26 34 30 30 45 32 29 0a  |tIcon  (&400E2).|
000214f0  23 50 61 72 65 6e 74 20  57 69 6d 70 5f 0a 3d 3e  |#Parent Wimp_.=>|
00021500  09 52 31 20 3d 09 3c 69  63 6f 6e 20 62 6c 6f 63  |.R1 =.<icon bloc|
00021510  6b 3d 3e 77 69 6d 70 5f  69 63 6f 6e 62 6c 6f 63  |k=>wimp_iconbloc|
00021520  6b 3e 0a 3c 3d 09 52 30  20 63 6f 72 72 75 70 74  |k>.<=.R0 corrupt|
00021530  0a 0a 54 68 69 73 20 53  57 49 20 63 61 6e 20 62  |..This SWI can b|
00021540  65 20 75 73 65 64 20 74  6f 20 70 6c 6f 74 20 61  |e used to plot a|
00021550  20 27 76 69 72 74 75 61  6c 27 20 69 63 6f 6e 20  | 'virtual' icon |
00021560  64 75 72 69 6e 67 20 61  20 77 69 6e 64 6f 77 20  |during a window |
00021570  72 65 64 72 61 77 2f 75  70 64 61 74 65 20 6c 6f  |redraw/update lo|
00021580  6f 70 2e 20 52 49 53 43  20 4f 53 20 33 20 61 6c  |op. RISC OS 3 al|
00021590  6c 6f 77 73 20 69 74 73  20 75 73 65 20 6f 75 74  |lows its use out|
000215a0  73 69 64 65 20 61 20 77  69 6e 64 6f 77 20 72 65  |side a window re|
000215b0  64 72 61 77 2f 75 70 64  61 74 65 20 6c 6f 6f 70  |draw/update loop|
000215c0  20 77 69 74 68 20 61 62  73 6f 6c 75 74 65 20 73  | with absolute s|
000215d0  63 72 65 65 6e 20 63 6f  6f 72 64 69 6e 61 74 65  |creen coordinate|
000215e0  73 2e 0a 00 44 41 54 41  0b 02 00 00 57 69 6d 70  |s...DATA....Wimp|
000215f0  5f 50 72 6f 63 65 73 73  4b 65 79 20 20 28 26 34  |_ProcessKey  (&4|
00021600  30 30 44 43 29 0a 23 50  61 72 65 6e 74 20 57 69  |00DC).#Parent Wi|
00021610  6d 70 5f 0a 3d 3e 09 52  30 20 3d 09 3c 43 68 61  |mp_.=>.R0 =.<Cha|
00021620  72 61 63 74 65 72 20 63  6f 64 65 3d 3e 77 69 6d  |racter code=>wim|
00021630  70 5f 70 6f 6c 6c 38 61  3e 2e 0a 3c 3d 09 52 30  |p_poll8a>..<=.R0|
00021640  20 63 6f 72 72 75 70 74  0a 0a 23 54 61 62 0a 54  | corrupt..#Tab.T|
00021650  68 69 73 20 63 61 6c 6c  20 68 61 73 20 74 77 6f  |his call has two|
00021660  20 75 73 65 73 3a 0a 20  20 31 20 3a 09 50 61 73  | uses:.  1 :.Pas|
00021670  73 20 6f 6e 20 6b 65 79  70 72 65 73 73 65 73 20  |s on keypresses |
00021680  74 68 61 74 20 79 6f 75  72 20 70 72 6f 67 72 61  |that your progra|
00021690  6d 20 68 61 73 20 72 65  63 65 69 76 65 64 20 66  |m has received f|
000216a0  72 6f 6d 20 57 69 6d 70  5f 50 6f 6c 6c 20 3c 72  |rom Wimp_Poll <r|
000216b0  65 61 73 6f 6e 20 38 3d  3e 57 69 6d 70 5f 70 6f  |eason 8=>Wimp_po|
000216c0  6c 6c 38 3e 2c 20 62 75  74 20 64 6f 65 73 6e 27  |ll8>, but doesn'|
000216d0  74 20 75 73 65 2e 0a 20  20 32 20 3a 09 49 6e 73  |t use..  2 :.Ins|
000216e0  65 72 74 20 6b 65 79 70  72 65 73 73 65 73 20 69  |ert keypresses i|
000216f0  6e 74 6f 20 74 68 65 20  77 69 6d 70 20 62 75 66  |nto the wimp buf|
00021700  66 65 72 2e 0a 0a 23 54  61 62 0a 4e 6f 74 65 20  |fer...#Tab.Note |
00021710  31 20 3a 09 59 6f 75 20  73 68 6f 75 6c 64 20 6e  |1 :.You should n|
00021720  6f 74 20 69 6e 73 65 72  74 20 6d 6f 72 65 20 74  |ot insert more t|
00021730  68 61 6e 20 6f 6e 65 20  6f 72 20 74 77 6f 20 63  |han one or two c|
00021740  68 61 72 61 63 74 65 72  73 20 61 74 20 61 20 74  |haracters at a t|
00021750  69 6d 65 20 74 68 69 73  20 77 61 79 2e 20 49 74  |ime this way. It|
00021760  20 73 65 65 6d 73 20 74  68 61 74 20 74 68 65 20  | seems that the |
00021770  57 69 6d 70 20 67 65 74  73 20 63 6f 6e 66 75 73  |Wimp gets confus|
00021780  65 64 20 61 66 74 65 72  20 74 68 61 74 2e 0a 0a  |ed after that...|
00021790  4e 6f 74 65 20 32 20 3a  09 43 68 61 72 61 63 74  |Note 2 :.Charact|
000217a0  65 72 73 20 69 6e 73 65  72 74 65 64 20 74 68 69  |ers inserted thi|
000217b0  73 20 77 61 79 20 74 61  6b 65 73 20 70 72 65 63  |s way takes prec|
000217c0  65 64 65 6e 63 65 20 6f  76 65 72 20 63 68 61 72  |edence over char|
000217d0  61 63 74 65 72 73 20 69  6e 20 74 68 65 20 6b 65  |acters in the ke|
000217e0  79 62 6f 61 72 64 20 62  75 66 66 65 72 2e 0a 00  |yboard buffer...|
000217f0  44 41 54 41 0b 01 00 00  57 69 6d 70 5f 52 65 64  |DATA....Wimp_Red|
00021800  72 61 77 57 69 6e 64 6f  77 20 20 28 26 34 30 30  |rawWindow  (&400|
00021810  43 38 29 0a 23 50 61 72  65 6e 74 20 57 69 6d 70  |C8).#Parent Wimp|
00021820  5f 0a 3d 3e 09 52 31 20  3d 09 70 6f 69 6e 74 65  |_.=>.R1 =.pointe|
00021830  72 20 74 6f 20 62 6c 6f  63 6b 20 63 6f 6e 74 61  |r to block conta|
00021840  69 6e 69 6e 67 20 77 69  6e 64 6f 77 20 68 61 6e  |ining window han|
00021850  64 6c 65 0a 3c 3d 09 45  78 69 74 73 20 74 68 72  |dle.<=.Exits thr|
00021860  6f 75 67 68 20 3c 57 69  6d 70 5f 47 65 74 52 65  |ough <Wimp_GetRe|
00021870  63 74 61 6e 67 6c 65 3e  0a 0a 54 68 69 73 20 53  |ctangle>..This S|
00021880  57 49 20 69 73 20 63 61  6c 6c 65 64 20 69 6e 20  |WI is called in |
00021890  72 65 73 70 6f 6e 73 65  20 74 6f 20 61 20 3c 52  |response to a <R|
000218a0  65 64 72 61 77 57 69 6e  64 6f 77 3d 3e 57 69 6d  |edrawWindow=>Wim|
000218b0  70 5f 50 6f 6c 6c 31 3e  20 6d 65 73 73 61 67 65  |p_Poll1> message|
000218c0  20 66 72 6f 6d 20 57 69  6d 70 2e 20 49 74 20 6d  | from Wimp. It m|
000218d0  75 73 74 20 62 65 20 31  73 74 20 57 69 6d 70 20  |ust be 1st Wimp |
000218e0  63 61 6c 6c 20 61 66 74  65 72 20 3c 57 69 6d 70  |call after <Wimp|
000218f0  5f 50 6f 6c 6c 3e 2e 20  20 20 20 00 44 41 54 41  |_Poll>.    .DATA|
00021900  0d 03 00 00 57 69 6d 70  5f 52 65 70 6f 72 74 45  |....Wimp_ReportE|
00021910  72 72 6f 72 20 20 28 26  34 30 30 44 46 29 0a 23  |rror  (&400DF).#|
00021920  50 61 72 65 6e 74 20 57  69 6d 70 5f 0a 3d 3e 09  |Parent Wimp_.=>.|
00021930  52 30 20 3d 09 70 6f 69  6e 74 65 72 20 74 6f 20  |R0 =.pointer to |
00021940  73 74 61 6e 64 61 72 64  20 3c 53 57 49 20 65 72  |standard <SWI er|
00021950  72 6f 72 62 6c 6f 63 6b  3d 3e 4f 53 3a 73 77 69  |rorblock=>OS:swi|
00021960  5f 65 72 72 6f 72 62 6c  6f 63 6b 3e 0a 09 52 31  |_errorblock>..R1|
00021970  20 3d 09 3c 66 6c 61 67  73 3d 3e 77 69 6d 70 5f  | =.<flags=>wimp_|
00021980  72 65 70 6f 72 74 65 72  72 6f 72 30 3e 0a 09 52  |reporterror0>..R|
00021990  32 20 3d 09 70 6f 69 6e  74 65 72 20 74 6f 20 61  |2 =.pointer to a|
000219a0  70 70 6c 69 63 61 74 69  6f 6e 20 6e 61 6d 65 20  |pplication name |
000219b0  28 6f 72 20 74 69 74 6c  65 20 69 66 20 62 69 74  |(or title if bit|
000219c0  20 34 20 73 65 74 29 2c  20 6f 72 20 30 20 66 6f  | 4 set), or 0 fo|
000219d0  72 20 73 69 6d 70 6c 79  20 27 45 72 72 6f 72 27  |r simply 'Error'|
000219e0  0a 09 52 33 20 3d 09 73  70 72 69 74 65 20 6e 61  |..R3 =.sprite na|
000219f0  6d 65 20 28 69 66 20 62  69 74 20 38 20 73 65 74  |me (if bit 8 set|
00021a00  29 0a 09 52 34 20 3d 09  73 70 72 69 74 65 20 3c  |)..R4 =.sprite <|
00021a10  62 6c 6f 63 6b 3d 3e 4f  53 3a 4f 53 5f 53 70 72  |block=>OS:OS_Spr|
00021a20  69 74 65 4f 70 5f 61 72  65 61 3e 20 28 69 66 20  |iteOp_area> (if |
00021a30  62 69 74 20 38 20 73 65  74 29 0a 09 52 35 20 3d  |bit 8 set)..R5 =|
00021a40  09 70 6f 69 6e 74 65 72  20 74 6f 20 65 78 74 72  |.pointer to extr|
00021a50  61 20 62 75 74 74 6f 6e  73 20 73 74 72 69 6e 67  |a buttons string|
00021a60  20 28 69 66 20 62 69 74  20 38 20 73 65 74 29 2c  | (if bit 8 set),|
00021a70  20 63 6f 6d 6d 61 20 73  65 70 65 72 61 74 65 64  | comma seperated|
00021a80  0a 0a 3c 3d 09 52 31 20  3d 09 30 20 69 66 20 6e  |..<=.R1 =.0 if n|
00021a90  6f 74 68 69 6e 67 20 73  65 6c 65 63 74 65 64 2c  |othing selected,|
00021aa0  20 31 20 69 66 20 4f 4b  20 73 65 6c 65 63 74 65  | 1 if OK selecte|
00021ab0  64 20 61 6e 64 20 32 20  69 66 20 43 61 6e 63 65  |d and 2 if Cance|
00021ac0  6c 2c 20 33 2d 35 20 69  66 20 65 78 74 72 61 20  |l, 3-5 if extra |
00021ad0  62 75 74 74 6f 6e 73 0a  09 20 09 52 65 74 75 72  |buttons.. .Retur|
00021ae0  6e 20 67 69 76 65 73 20  64 65 66 61 75 6c 74 2c  |n gives default,|
00021af0  20 45 73 63 61 70 65 20  74 68 65 20 61 6c 74 65  | Escape the alte|
00021b00  72 6e 61 74 65 0a 09 52  30 20 63 6f 72 72 75 70  |rnate..R0 corrup|
00021b10  74 0a 20 20 20 20 20 20  20 20 0a 54 68 69 73 20  |t.        .This |
00021b20  53 57 49 20 6f 70 65 6e  73 20 61 20 73 74 61 6e  |SWI opens a stan|
00021b30  64 61 72 64 2c 20 6e 6f  6e 2d 6d 75 6c 74 69 74  |dard, non-multit|
00021b40  61 73 6b 69 6e 67 2c 20  65 72 72 6f 72 62 6f 78  |asking, errorbox|
00021b50  20 6f 6e 20 74 68 65 20  73 63 72 65 65 6e 2e 20  | on the screen. |
00021b60  41 76 6f 69 64 2c 20 69  66 20 70 6f 73 73 69 62  |Avoid, if possib|
00021b70  6c 65 2e 20 49 74 20 69  73 20 62 6f 72 69 6e 67  |le. It is boring|
00021b80  20 61 6e 64 2c 20 61 73  20 73 74 61 74 65 64 20  | and, as stated |
00021b90  61 62 6f 76 65 2c 20 6e  6f 6e 2d 6d 75 6c 74 69  |above, non-multi|
00021ba0  74 61 73 6b 69 6e 67 2e  20 48 6f 77 65 76 65 72  |tasking. However|
00021bb0  2c 20 74 68 65 20 52 4f  33 2e 35 20 65 78 74 65  |, the RO3.5 exte|
00021bc0  6e 73 69 6f 6e 73 20 6d  61 6b 65 20 74 68 65 20  |nsions make the |
00021bd0  75 73 65 20 6f 66 20 65  72 72 6f 72 20 62 6f 78  |use of error box|
00021be0  65 73 20 6d 75 63 68 20  6d 6f 72 65 20 61 70 70  |es much more app|
00021bf0  65 61 6c 69 6e 67 20 74  6f 20 74 68 65 20 70 72  |ealing to the pr|
00021c00  6f 67 72 61 6d 6d 65 72  2e 00 00 00 44 41 54 41  |ogrammer....DATA|
00021c10  01 03 00 00 46 6c 61 67  73 20 66 6f 72 20 57 69  |....Flags for Wi|
00021c20  6d 70 5f 52 65 70 6f 72  74 45 72 72 6f 72 0a 42  |mp_ReportError.B|
00021c30  69 74 09 4d 65 61 6e 69  6e 67 20 77 68 65 6e 20  |it.Meaning when |
00021c40  73 65 74 0a 23 4c 69 6e  65 0a 30 09 27 4f 4b 27  |set.#Line.0.'OK'|
00021c50  20 62 6f 78 0a 31 09 27  43 61 6e 63 65 6c 27 20  | box.1.'Cancel' |
00021c60  62 6f 78 0a 32 09 48 69  67 68 6c 69 67 68 74 20  |box.2.Highlight |
00021c70  43 61 6e 63 65 6c 20 28  6f 72 20 4f 4b 20 69 66  |Cancel (or OK if|
00021c80  20 6e 6f 20 43 61 6e 63  65 6c 20 62 6f 78 29 0a  | no Cancel box).|
00021c90  33 09 44 6f 6e 27 74 20  64 6f 20 27 50 72 65 73  |3.Don't do 'Pres|
00021ca0  73 20 73 70 61 63 65 20  6f 72 20 63 6c 69 63 6b  |s space or click|
00021cb0  20 6d 6f 75 73 65 20 74  6f 20 63 6f 6e 74 69 6e  | mouse to contin|
00021cc0  75 65 27 0a 34 09 44 6f  6e 27 74 20 70 72 65 66  |ue'.4.Don't pref|
00021cd0  69 78 20 74 69 74 6c 65  20 77 69 74 68 20 27 45  |ix title with 'E|
00021ce0  72 72 6f 72 20 66 72 6f  6d 20 27 0a 35 09 52 65  |rror from '.5.Re|
00021cf0  74 75 72 6e 20 69 6d 6d  65 64 69 61 74 65 6c 79  |turn immediately|
00021d00  20 77 69 74 68 20 52 31  3d 30 20 61 6e 64 20 62  | with R1=0 and b|
00021d10  6f 78 20 6f 70 65 6e 0a  36 09 53 69 6d 75 6c 61  |ox open.6.Simula|
00021d20  74 65 20 69 63 6f 6e 63  6c 69 63 6b 20 69 6e 20  |te iconclick in |
00021d30  62 6f 78 20 61 63 63 6f  72 64 69 6e 67 20 74 6f  |box according to|
00021d40  20 62 69 74 73 20 30 2b  31 0a 37 09 44 6f 6e 27  | bits 0+1.7.Don'|
00021d50  74 20 62 65 65 70 0a 38  09 55 73 65 20 63 61 74  |t beep.8.Use cat|
00021d60  65 67 6f 72 69 65 73 0a  39 2d 31 31 09 3c 43 61  |egories.9-11.<Ca|
00021d70  74 65 67 6f 72 79 3d 3e  2e 43 61 74 65 67 6f 72  |tegory=>.Categor|
00021d80  79 3e 0a 31 32 2d 33 31  09 52 65 73 65 72 76 65  |y>.12-31.Reserve|
00021d90  64 2e 20 4d 75 73 74 20  62 65 20 30 0a 23 73 75  |d. Must be 0.#su|
00021da0  62 70 61 67 65 20 43 61  74 65 67 6f 72 79 0a 57  |bpage Category.W|
00021db0  69 6d 70 5f 52 65 70 6f  72 74 45 72 72 6f 72 20  |imp_ReportError |
00021dc0  63 61 74 65 67 6f 72 69  65 73 0a 5c 23 09 4d 65  |categories.\#.Me|
00021dd0  61 6e 69 6e 67 0a 23 4c  69 6e 65 0a 31 09 49 6e  |aning.#Line.1.In|
00021de0  66 6f 72 6d 61 74 69 6f  6e 61 6c 2e 0a 32 09 57  |formational..2.W|
00021df0  61 72 6e 69 6e 67 2e 0a  33 09 50 72 6f 67 72 61  |arning..3.Progra|
00021e00  6d 20 28 69 65 20 6e 6f  6e 2d 64 65 73 6b 74 6f  |m (ie non-deskto|
00021e10  70 29 20 6d 65 73 73 61  67 65 20 28 73 74 6f 70  |p) message (stop|
00021e20  29 2e 0a 34 09 51 75 65  73 74 69 6f 6e 3b 20 75  |)..4.Question; u|
00021e30  73 75 61 6c 6c 79 20 75  73 65 64 20 77 69 74 68  |sually used with|
00021e40  20 74 68 65 20 62 75 74  74 6f 6e 20 73 74 72 69  | the button stri|
00021e50  6e 67 2e 0a 35 09 55 73  65 72 20 69 63 6f 6e 20  |ng..5.User icon |
00021e60  31 20 28 69 65 20 75 6e  64 65 66 69 6e 65 64 29  |1 (ie undefined)|
00021e70  0a 36 09 55 73 65 72 20  69 63 6f 6e 20 32 20 28  |.6.User icon 2 (|
00021e80  69 65 20 75 6e 64 65 66  69 6e 65 64 29 0a 37 09  |ie undefined).7.|
00021e90  50 72 6f 67 72 61 6d 20  61 67 61 69 6e 20 28 64  |Program again (d|
00021ea0  6f 20 6e 6f 74 20 75 73  65 29 0a 0a 54 68 65 73  |o not use)..Thes|
00021eb0  65 20 64 65 66 69 6e 65  20 74 68 65 20 74 79 70  |e define the typ|
00021ec0  65 20 6f 66 20 65 72 72  6f 72 20 75 6e 64 65 72  |e of error under|
00021ed0  20 52 4f 33 2e 35 20 61  6e 64 20 64 69 73 70 6c  | RO3.5 and displ|
00021ee0  61 79 20 74 68 65 20 74  79 70 65 20 6f 66 20 74  |ay the type of t|
00021ef0  68 65 20 65 72 72 6f 72  2e 20 42 69 74 20 38 20  |he error. Bit 8 |
00021f00  6d 75 73 74 20 62 65 20  73 65 74 2e 0a 00 00 00  |must be set.....|
00021f10  44 41 54 41 41 01 00 00  57 69 6d 70 5f 53 6c 6f  |DATAA...Wimp_Slo|
00021f20  74 53 69 7a 65 20 20 28  26 34 30 30 45 43 29 0a  |tSize  (&400EC).|
00021f30  23 50 61 72 65 6e 74 20  57 69 6d 70 5f 0a 3d 3e  |#Parent Wimp_.=>|
00021f40  09 52 30 20 3d 09 6e 65  77 20 73 69 7a 65 20 6f  |.R0 =.new size o|
00021f50  66 20 63 75 72 72 65 6e  74 20 73 6c 6f 74 2c 20  |f current slot, |
00021f60  6f 72 20 2d 31 20 74 6f  20 72 65 61 64 0a 09 52  |or -1 to read..R|
00021f70  31 20 3d 09 6e 65 77 20  73 69 7a 65 20 6f 66 20  |1 =.new size of |
00021f80  6e 65 78 74 20 73 6c 6f  74 2c 20 6f 72 20 2d 31  |next slot, or -1|
00021f90  20 74 6f 20 72 65 61 64  0a 0a 3c 3d 09 52 30 20  | to read..<=.R0 |
00021fa0  3d 09 73 69 7a 65 20 6f  66 20 63 75 72 72 65 6e  |=.size of curren|
00021fb0  74 20 73 6c 6f 74 0a 09  52 31 20 3d 09 73 69 7a  |t slot..R1 =.siz|
00021fc0  65 20 6f 66 20 6e 65 78  74 20 73 6c 6f 74 0a 09  |e of next slot..|
00021fd0  52 32 20 3d 09 73 69 7a  65 20 6f 66 20 66 72 65  |R2 =.size of fre|
00021fe0  65 20 70 6f 6f 6c 0a 09  52 34 20 63 6f 72 72 75  |e pool..R4 corru|
00021ff0  70 74 65 64 0a 0a 54 68  69 73 20 53 57 49 20 72  |pted..This SWI r|
00022000  65 61 64 73 20 6f 72 20  73 65 74 73 20 74 68 65  |eads or sets the|
00022010  20 61 6d 6f 75 6e 74 20  6f 66 20 6d 65 6d 6f 72  | amount of memor|
00022020  79 20 61 6c 6c 6f 63 61  74 65 64 20 74 6f 20 74  |y allocated to t|
00022030  68 65 20 63 75 72 72 65  6e 74 2c 20 6f 72 20 6e  |he current, or n|
00022040  65 78 74 20 61 70 70 6c  69 63 61 74 69 6f 6e 2e  |ext application.|
00022050  0a 00 00 00 44 41 54 41  59 01 00 00 57 69 6d 70  |....DATAY...Wimp|
00022060  5f 53 70 72 69 74 65 4f  70 20 20 28 26 34 30 30  |_SpriteOp  (&400|
00022070  45 39 29 0a 23 50 61 72  65 6e 74 20 57 69 6d 70  |E9).#Parent Wimp|
00022080  5f 0a 3d 3e 09 52 30 20  3d 09 3c 72 65 61 73 6f  |_.=>.R0 =.<reaso|
00022090  6e 20 63 6f 64 65 3d 3e  4f 53 3a 4f 53 5f 53 70  |n code=>OS:OS_Sp|
000220a0  72 69 74 65 4f 70 5f 52  65 61 73 6f 6e 3e 20 28  |riteOp_Reason> (|
000220b0  30 2e 2e 26 46 46 29 0a  09 52 31 09 75 6e 75 73  |0..&FF)..R1.unus|
000220c0  65 64 0a 09 52 32 20 3d  09 70 6f 69 6e 74 65 72  |ed..R2 =.pointer|
000220d0  20 74 6f 20 73 70 72 69  74 65 20 6e 61 6d 65 0a  | to sprite name.|
000220e0  09 52 33 2e 2e 09 61 73  20 66 6f 72 20 4f 53 5f  |.R3...as for OS_|
000220f0  53 70 72 69 74 65 4f 70  0a 0a 3c 3d 09 52 30 20  |SpriteOp..<=.R0 |
00022100  63 6f 72 72 75 70 74 0a  09 6f 74 68 65 72 73 20  |corrupt..others |
00022110  61 73 20 66 6f 72 20 4f  53 5f 53 70 72 69 74 65  |as for OS_Sprite|
00022120  4f 70 0a 0a 54 68 69 73  20 63 61 6c 6c 20 69 73  |Op..This call is|
00022130  20 6d 61 70 70 65 64 20  74 6f 20 3c 4f 53 5f 53  | mapped to <OS_S|
00022140  70 72 69 74 65 4f 70 3d  3e 4f 53 3a 4f 53 5f 53  |priteOp=>OS:OS_S|
00022150  70 72 69 74 65 4f 70 3e  2e 20 26 31 30 30 20 69  |priteOp>. &100 i|
00022160  73 20 61 64 64 65 64 20  74 6f 20 72 65 61 73 6f  |s added to reaso|
00022170  6e 20 63 6f 64 65 20 69  6e 20 52 30 2c 20 61 6e  |n code in R0, an|
00022180  64 20 52 31 20 69 73 20  73 65 74 20 74 6f 20 74  |d R1 is set to t|
00022190  68 65 20 57 69 6d 70 20  73 70 72 69 74 65 2d 61  |he Wimp sprite-a|
000221a0  72 65 61 20 70 6f 69 6e  74 65 72 2e 0a 00 00 00  |rea pointer.....|
000221b0  44 41 54 41 97 01 00 00  57 69 6d 70 5f 53 74 61  |DATA....Wimp_Sta|
000221c0  72 74 54 61 73 6b 20 20  28 26 34 30 30 44 45 29  |rtTask  (&400DE)|
000221d0  0a 23 50 61 72 65 6e 74  20 57 69 6d 70 5f 0a 3d  |.#Parent Wimp_.=|
000221e0  3e 09 52 30 20 3d 09 50  6f 69 6e 74 65 72 20 74  |>.R0 =.Pointer t|
000221f0  6f 20 2a 63 6f 6d 6d 61  6e 64 0a 3c 3d 09 52 30  |o *command.<=.R0|
00022200  20 3d 09 74 61 73 6b 20  68 61 6e 64 6c 65 20 6f  | =.task handle o|
00022210  66 20 63 68 69 6c 64 2c  20 6f 72 20 30 20 69 66  |f child, or 0 if|
00022220  20 69 74 20 68 61 73 20  65 78 69 74 65 64 0a 0a  | it has exited..|
00022230  54 68 69 73 20 53 57 49  20 63 72 65 61 74 65 73  |This SWI creates|
00022240  20 61 20 6e 65 77 20 74  61 73 6b 2c 20 61 6e 64  | a new task, and|
00022250  20 65 78 65 63 75 74 65  73 20 74 68 65 20 67 69  | executes the gi|
00022260  76 65 6e 20 2a 63 6f 6d  6d 61 6e 64 2e 20 54 68  |ven *command. Th|
00022270  65 20 53 57 49 20 72 65  74 75 72 6e 73 20 74 6f  |e SWI returns to|
00022280  20 79 6f 75 20 77 68 65  6e 20 6e 65 77 20 74 61  | you when new ta|
00022290  73 6b 20 65 78 69 74 73  2c 20 6f 72 20 63 61 6c  |sk exits, or cal|
000222a0  6c 73 20 3c 57 69 6d 70  5f 50 6f 6c 6c 3e 2e 0a  |ls <Wimp_Poll>..|
000222b0  0a 4e 6f 74 65 20 74 68  61 74 20 79 6f 75 20 63  |.Note that you c|
000222c0  61 6e 20 6f 6e 6c 79 20  63 61 6c 6c 20 74 68 69  |an only call thi|
000222d0  73 20 53 57 49 20 66 72  6f 6d 20 55 53 52 20 6d  |s SWI from USR m|
000222e0  6f 64 65 2c 20 61 6e 64  20 6f 6e 6c 79 20 69 66  |ode, and only if|
000222f0  20 79 6f 75 20 61 72 65  20 61 20 27 6c 69 76 65  | you are a 'live|
00022300  27 20 74 61 73 6b 20 28  7b 2f 7d 69 2e 65 2e 7b  |' task ({/}i.e.{|
00022310  2f 7d 20 67 61 69 6e 65  64 20 63 6f 6e 74 72 6f  |/} gained contro|
00022320  6c 20 66 72 6f 6d 20 3c  57 69 6d 70 5f 49 6e 69  |l from <Wimp_Ini|
00022330  74 69 61 6c 69 73 65 3e  20 6f 72 20 57 69 6d 70  |tialise> or Wimp|
00022340  5f 50 6f 6c 6c 2e 0a 00  44 41 54 41 b1 00 00 00  |_Poll...DATA....|
00022350  57 69 6d 70 5f 54 65 78  74 43 6f 6c 6f 75 72 20  |Wimp_TextColour |
00022360  20 28 26 34 30 30 46 30  29 0a 23 50 61 72 65 6e  | (&400F0).#Paren|
00022370  74 20 57 69 6d 70 5f 0a  3d 3e 09 52 30 20 3a 09  |t Wimp_.=>.R0 :.|
00022380  62 69 74 73 20 30 2d 33  20 57 69 6d 70 20 63 6f  |bits 0-3 Wimp co|
00022390  6c 6f 75 72 0a 09 20 09  62 69 74 20 20 37 09 30  |lour.. .bit  7.0|
000223a0  20 66 6f 72 20 66 6f 72  65 67 72 6f 75 6e 64 2c  | for foreground,|
000223b0  0a 09 20 09 20 09 31 20  66 6f 72 20 62 61 63 6b  |.. . .1 for back|
000223c0  67 72 6f 75 6e 64 0a 3c  3d 09 52 30 20 63 6f 72  |ground.<=.R0 cor|
000223d0  72 75 70 74 0a 0a 54 68  69 73 20 53 57 49 20 61  |rupt..This SWI a|
000223e0  70 70 6c 69 65 73 20 6f  6e 6c 79 20 74 6f 20 56  |pplies only to V|
000223f0  44 55 34 20 74 65 78 74  2e 00 00 00 44 41 54 41  |DU4 text....DATA|
00022400  50 01 00 00 57 69 6d 70  5f 54 72 61 6e 73 66 65  |P...Wimp_Transfe|
00022410  72 42 6c 6f 63 6b 20 20  28 26 34 30 30 46 31 29  |rBlock  (&400F1)|
00022420  0a 23 50 61 72 65 6e 74  20 57 69 6d 70 5f 0a 3d  |.#Parent Wimp_.=|
00022430  3e 09 52 30 20 3d 09 68  61 6e 64 6c 65 20 6f 66  |>.R0 =.handle of|
00022440  20 73 6f 75 72 63 65 20  74 61 73 6b 0a 09 52 31  | source task..R1|
00022450  20 3d 09 70 6f 69 6e 74  65 72 20 74 6f 20 73 6f  | =.pointer to so|
00022460  75 72 63 65 20 64 61 74  61 0a 09 52 32 20 3d 09  |urce data..R2 =.|
00022470  68 61 6e 64 6c 65 20 6f  66 20 64 65 73 74 69 6e  |handle of destin|
00022480  61 74 69 6f 6e 20 74 61  73 6b 0a 09 52 33 20 3d  |ation task..R3 =|
00022490  09 70 6f 69 6e 74 65 72  20 74 6f 20 64 65 73 74  |.pointer to dest|
000224a0  69 6e 61 74 69 6f 6e 20  62 75 66 66 65 72 0a 09  |ination buffer..|
000224b0  52 34 20 3d 09 6c 65 6e  67 74 68 20 6f 66 20 62  |R4 =.length of b|
000224c0  75 66 66 65 72 0a 3c 3d  09 52 30 20 63 6f 72 72  |uffer.<=.R0 corr|
000224d0  75 70 74 0a 0a 54 68 69  73 20 53 57 49 20 69 73  |upt..This SWI is|
000224e0  20 75 73 65 64 20 74 6f  20 74 72 61 6e 73 66 65  | used to transfe|
000224f0  72 20 61 20 62 6c 6f 63  6b 20 6f 66 20 64 61 74  |r a block of dat|
00022500  61 20 66 72 6f 6d 20 6f  6e 65 20 74 61 73 6b 20  |a from one task |
00022510  74 6f 20 61 6e 6f 74 68  65 72 2e 20 41 64 64 72  |to another. Addr|
00022520  65 73 73 65 73 20 61 6e  64 20 62 75 66 66 65 72  |esses and buffer|
00022530  6c 65 6e 67 74 68 20 61  72 65 20 61 6c 6c 20 62  |length are all b|
00022540  79 74 65 2d 61 6c 69 67  6e 65 64 2e 44 41 54 41  |yte-aligned.DATA|
00022550  97 02 00 00 57 69 6d 70  5f 55 70 64 61 74 65 57  |....Wimp_UpdateW|
00022560  69 6e 64 6f 77 20 20 28  26 34 30 30 43 39 29 0a  |indow  (&400C9).|
00022570  23 50 61 72 65 6e 74 20  57 69 6d 70 5f 0a 3d 3e  |#Parent Wimp_.=>|
00022580  09 52 31 20 3d 09 42 6c  6f 63 6b 20 3a 0a 09 20  |.R1 =.Block :.. |
00022590  09 20 20 30 09 57 69 6e  64 6f 77 20 68 61 6e 64  |.  0.Window hand|
000225a0  6c 65 0a 09 20 09 20 20  34 09 57 6f 72 6b 20 61  |le.. .  4.Work a|
000225b0  72 65 61 20 72 65 63 74  61 6e 67 6c 65 09 6d 69  |rea rectangle.mi|
000225c0  6e 78 20 28 69 6e 63 6c  29 0a 09 20 09 20 20 38  |nx (incl).. .  8|
000225d0  09 20 09 09 09 6d 69 6e  79 20 28 69 6e 63 6c 29  |. ...miny (incl)|
000225e0  0a 09 20 09 20 20 31 32  09 20 09 09 09 6d 61 78  |.. .  12. ...max|
000225f0  78 20 28 65 78 63 6c 29  0a 09 20 09 20 20 31 36  |x (excl).. .  16|
00022600  09 20 09 09 09 6d 61 78  79 20 28 65 78 63 6c 29  |. ...maxy (excl)|
00022610  0a 0a 3c 3d 09 45 78 69  74 73 20 74 68 72 6f 75  |..<=.Exits throu|
00022620  67 68 20 3c 57 69 6d 70  5f 47 65 74 52 65 63 74  |gh <Wimp_GetRect|
00022630  61 6e 67 6c 65 3e 0a 0a  23 54 61 62 0a 54 68 69  |angle>..#Tab.Thi|
00022640  73 20 53 57 49 20 69 73  20 73 69 6d 69 6c 61 72  |s SWI is similar|
00022650  20 74 6f 20 3c 57 69 6d  70 5f 52 65 64 72 61 77  | to <Wimp_Redraw|
00022660  57 69 6e 64 6f 77 3e 2e  0a 44 69 66 66 65 72 65  |Window>..Differe|
00022670  6e 63 65 73 20 3a 0a 20  20 8f 09 4e 6f 74 20 61  |nces :.  ..Not a|
00022680  6c 6c 20 6f 66 20 77 69  6e 64 6f 77 20 68 61 73  |ll of window has|
00022690  20 74 6f 20 62 65 20 75  70 64 61 74 65 64 2e 0a  | to be updated..|
000226a0  20 20 8f 09 52 65 63 74  61 6e 67 6c 65 73 20 61  |  ..Rectangles a|
000226b0  72 65 20 6e 6f 74 20 63  6c 65 61 72 65 64 20 62  |re not cleared b|
000226c0  79 20 57 69 6d 70 2e 0a  20 20 8f 09 43 61 6e 20  |y Wimp..  ..Can |
000226d0  62 65 20 63 61 6c 6c 65  64 20 61 74 20 61 6e 79  |be called at any|
000226e0  20 74 69 6d 65 2c 20 6e  6f 74 20 6a 75 73 74 20  | time, not just |
000226f0  69 6e 20 72 65 73 70 6f  6e 73 65 20 74 6f 20 52  |in response to R|
00022700  65 64 72 61 77 57 69 6e  64 6f 77 20 6d 65 73 73  |edrawWindow mess|
00022710  61 67 65 2e 0a 20 20 8f  09 4e 4f 54 45 3a 20 54  |age..  ..NOTE: T|
00022720  68 69 73 20 53 57 49 20  64 6f 65 73 20 6e 6f 74  |his SWI does not|
00022730  20 72 65 6d 6f 76 65 20  72 65 63 74 61 6e 67 6c  | remove rectangl|
00022740  65 73 20 66 72 6f 6d 20  57 69 6d 70 5f 52 65 64  |es from Wimp_Red|
00022750  72 61 77 57 69 6e 64 6f  77 73 20 6c 69 73 74 20  |rawWindows list |
00022760  6f 66 20 69 6e 76 61 6c  69 64 20 72 65 63 74 61  |of invalid recta|
00022770  6e 67 6c 65 73 2e 20 49  66 20 74 68 65 20 61 72  |ngles. If the ar|
00022780  65 61 20 69 73 20 61 6c  72 65 61 64 79 20 69 6e  |ea is already in|
00022790  76 61 6c 69 64 2c 20 74  68 65 6e 20 57 69 6d 70  |valid, then Wimp|
000227a0  20 77 69 6c 6c 20 73 65  6e 64 20 79 6f 75 20 72  | will send you r|
000227b0  65 64 72 61 77 20 6d 65  73 73 61 67 65 73 2c 20  |edraw messages, |
000227c0  65 76 65 6e 20 69 66 20  79 6f 75 20 68 61 76 65  |even if you have|
000227d0  20 75 70 64 61 74 65 64  20 74 68 65 20 61 72 65  | updated the are|
000227e0  61 2e 0a 00 44 41 54 41  51 0f 00 00 56 61 6c 69  |a...DATAQ...Vali|
000227f0  64 61 74 69 6f 6e 20 53  74 72 69 6e 67 73 0a 23  |dation Strings.#|
00022800  50 72 65 66 69 78 20 2e  0a 56 61 6c 69 64 61 74  |Prefix ..Validat|
00022810  69 6f 6e 20 73 74 72 69  6e 67 20 63 61 6e 20 63  |ion string can c|
00022820  6f 6e 74 61 69 6e 20 74  68 65 20 66 6f 6c 6c 6f  |ontain the follo|
00022830  77 69 6e 67 20 63 6f 6d  6d 61 6e 64 73 20 3a 0a  |wing commands :.|
00022840  28 43 6f 6d 6d 61 6e 64  73 20 63 61 6e 20 62 65  |(Commands can be|
00022850  20 73 65 70 61 72 61 74  65 64 20 62 79 20 22 3b  | separated by ";|
00022860  22 29 0a 0a 23 49 6e 64  65 6e 74 20 32 0a 3c 41  |")..#Indent 2.<A|
00022870  3e 09 41 6c 6c 6f 77 61  62 6c 65 20 63 68 61 72  |>.Allowable char|
00022880  61 63 74 65 72 73 0a 3c  43 3e 09 53 65 74 20 69  |acters.<C>.Set i|
00022890  63 6f 6e 20 63 6f 6c 6f  75 72 73 20 28 57 69 6e  |con colours (Win|
000228a0  64 6f 77 20 4d 61 6e 61  67 65 72 20 33 2e 38 30  |dow Manager 3.80|
000228b0  20 6f 6e 77 61 72 64 73  29 0a 3c 44 3e 09 4d 61  | onwards).<D>.Ma|
000228c0  73 6b 20 74 79 70 65 64  20 63 68 61 72 61 63 74  |sk typed charact|
000228d0  65 72 73 0a 3c 46 3e 09  53 65 74 20 66 6f 6e 74  |ers.<F>.Set font|
000228e0  20 63 6f 6c 6f 75 72 73  0a 3c 4b 3e 09 41 73 73  | colours.<K>.Ass|
000228f0  69 67 6e 20 66 75 6e 63  74 69 6f 6e 61 6c 69 74  |ign functionalit|
00022900  79 20 74 6f 20 73 70 65  63 69 66 69 63 20 6b 65  |y to specific ke|
00022910  79 73 0a 3c 4c 3e 09 54  65 78 74 20 69 6e 20 69  |ys.<L>.Text in i|
00022920  63 6f 6e 20 77 69 6c 6c  20 62 65 20 66 6f 72 6d  |con will be form|
00022930  61 74 74 65 64 20 28 73  70 6c 69 74 29 0a 3c 50  |atted (split).<P|
00022940  3e 09 53 65 74 73 20 70  6f 69 6e 74 65 72 20 73  |>.Sets pointer s|
00022950  68 61 70 65 20 61 6e 64  20 61 63 74 69 76 65 20  |hape and active |
00022960  70 6f 69 6e 74 0a 3c 52  3e 09 42 6f 72 64 65 72  |point.<R>.Border|
00022970  20 63 6f 6d 6d 61 6e 64  73 0a 3c 53 3e 09 53 70  | commands.<S>.Sp|
00022980  72 69 74 65 6e 61 6d 65  0a 23 0a 23 53 75 62 70  |ritename.#.#Subp|
00022990  61 67 65 20 41 0a 56 61  6c 69 64 61 74 69 6f 6e  |age A.Validation|
000229a0  20 73 74 72 69 6e 67 20  27 41 27 0a 55 73 65 3a  | string 'A'.Use:|
000229b0  09 45 78 63 6c 75 64 65  2f 61 63 63 65 70 74 20  |.Exclude/accept |
000229c0  6f 6e 6c 79 20 63 65 72  74 61 69 6e 20 63 68 61  |only certain cha|
000229d0  72 61 63 74 65 72 73 20  69 6e 74 6f 20 61 20 77  |racters into a w|
000229e0  72 69 74 65 61 62 6c 65  20 69 63 6f 6e 2e 0a 0a  |riteable icon...|
000229f0  53 79 6e 74 61 78 3a 09  7b 46 63 6f 64 65 3a 41  |Syntax:.{Fcode:A|
00022a00  5b 63 68 61 72 20 6c 69  73 74 5d 5b 7e 65 78 63  |[char list][~exc|
00022a10  6c 75 73 69 6f 6e 20 6c  69 73 74 5d 7d 0a 09 41  |lusion list]}..A|
00022a20  6c 6c 6f 77 20 63 68 61  72 61 63 74 65 72 73 20  |llow characters |
00022a30  69 6e 20 27 63 68 61 72  20 6c 69 73 74 27 2e 0a  |in 'char list'..|
00022a40  09 44 69 73 61 6c 6c 6f  77 20 63 68 61 72 61 63  |.Disallow charac|
00022a50  74 65 72 73 20 69 6e 20  27 65 78 63 6c 75 73 69  |ters in 'exclusi|
00022a60  6f 6e 20 6c 69 73 74 27  0a 0a 45 78 61 6d 70 6c  |on list'..Exampl|
00022a70  65 73 3a 09 41 30 2d 39  61 2d 7a 7e 62 09 41 6c  |es:.A0-9a-z~b.Al|
00022a80  6c 6f 77 73 20 30 2e 2e  39 2c 20 61 2c 20 63 2e  |lows 0..9, a, c.|
00022a90  2e 7a 0a 09 41 7e 58 09  09 41 6c 6c 6f 77 73 20  |.z..A~X..Allows |
00022aa0  61 6c 6c 20 63 68 61 72  73 20 62 75 74 20 58 0a  |all chars but X.|
00022ab0  09 41 7e 5c 5c 7e 09 09  41 6c 6c 6f 77 73 20 61  |.A~\\~..Allows a|
00022ac0  6c 6c 20 63 68 61 72 73  20 62 75 74 20 7e 0a 09  |ll chars but ~..|
00022ad0  41 7e 09 09 41 6c 6c 6f  77 73 20 61 6c 6c 20 63  |A~..Allows all c|
00022ae0  68 61 72 73 0a 23 0a 23  53 75 62 70 61 67 65 20  |hars.#.#Subpage |
00022af0  44 0a 56 61 6c 69 64 61  74 69 6f 6e 20 73 74 72  |D.Validation str|
00022b00  69 6e 67 20 27 44 27 0a  55 73 65 3a 09 54 68 65  |ing 'D'.Use:.The|
00022b10  20 6d 61 73 6b 69 6e 67  20 6f 66 20 74 68 65 20  | masking of the |
00022b20  63 6f 6e 74 65 6e 74 73  20 6f 66 20 69 63 6f 6e  |contents of icon|
00022b30  73 2e 20 55 73 75 61 6c  6c 79 20 75 73 65 64 20  |s. Usually used |
00022b40  69 6e 20 70 61 73 73 77  6f 72 64 20 69 63 6f 6e  |in password icon|
00022b50  73 2e 0a 0a 53 79 6e 74  61 78 3a 09 7b 46 63 6f  |s...Syntax:.{Fco|
00022b60  64 65 3a 44 63 68 61 72  7d 0a 09 44 69 73 70 6c  |de:Dchar}..Displ|
00022b70  61 79 73 20 61 6c 6c 20  74 79 70 65 64 20 63 68  |ays all typed ch|
00022b80  61 72 73 20 61 73 20 27  63 68 61 72 27 0a 09 53  |ars as 'char'..S|
00022b90  70 65 63 69 61 6c 20 63  68 61 72 61 63 74 65 72  |pecial character|
00022ba0  73 20 6d 75 73 74 20 62  65 20 70 72 65 63 65 64  |s must be preced|
00022bb0  65 64 20 62 79 20 61 20  5c 5c 0a 0a 45 78 61 6d  |ed by a \\..Exam|
00022bc0  70 6c 65 73 3a 09 7b 46  63 6f 64 65 3a 44 2a 7d  |ples:.{Fcode:D*}|
00022bd0  09 43 6f 6e 74 65 6e 74  73 20 6f 66 20 74 68 65  |.Contents of the|
00022be0  20 69 63 6f 6e 20 69 73  20 64 69 73 70 6c 61 79  | icon is display|
00022bf0  65 64 20 61 73 20 61 20  73 65 72 69 65 73 20 6f  |ed as a series o|
00022c00  66 20 2a 27 73 2e 0a 09  09 7b 46 63 6f 64 65 3a  |f *'s....{Fcode:|
00022c10  44 5c 2d 7d 09 43 6f 6e  74 65 6e 74 73 20 64 69  |D\-}.Contents di|
00022c20  73 70 6c 61 79 65 64 20  61 73 20 61 20 73 65 72  |splayed as a ser|
00022c30  69 65 73 20 6f 66 20 27  2d 27 73 0a 23 0a 23 53  |ies of '-'s.#.#S|
00022c40  75 62 70 61 67 65 20 46  0a 56 61 6c 69 64 61 74  |ubpage F.Validat|
00022c50  69 6f 6e 20 73 74 72 69  6e 67 20 27 46 27 0a 55  |ion string 'F'.U|
00022c60  73 65 3a 09 54 68 65 20  64 65 66 69 6e 69 74 69  |se:.The definiti|
00022c70  6f 6e 20 6f 66 20 6f 75  74 6c 69 6e 65 20 66 6f  |on of outline fo|
00022c80  6e 74 20 63 6f 6c 6f 75  72 73 2e 0a 0a 53 79 6e  |nt colours...Syn|
00022c90  74 61 78 3a 09 7b 46 63  6f 64 65 3a 46 78 79 7d  |tax:.{Fcode:Fxy}|
00022ca0  0a 09 78 20 3d 20 42 61  63 6b 67 72 6f 75 6e 64  |..x = Background|
00022cb0  0a 09 79 20 3d 20 46 6f  72 65 67 72 6f 75 6e 64  |..y = Foreground|
00022cc0  2e 0a 09 78 20 61 6e 64  20 79 20 61 72 65 20 68  |...x and y are h|
00022cd0  65 78 61 64 65 63 69 6d  61 6c 20 64 69 67 69 74  |exadecimal digit|
00022ce0  73 3a 20 30 2e 2e 39 2c  41 2e 2e 46 0a 0a 4e 6f  |s: 0..9,A..F..No|
00022cf0  74 65 73 3a 09 54 68 69  73 20 63 61 6c 6c 20 75  |tes:.This call u|
00022d00  73 65 73 20 3c 57 69 6d  70 5f 53 65 74 46 6f 6e  |ses <Wimp_SetFon|
00022d10  74 43 6f 6c 6f 75 72 73  3e 2e 0a 0a 45 78 61 6d  |tColours>...Exam|
00022d20  70 6c 65 73 3a 09 7b 46  63 6f 64 65 3a 46 41 33  |ples:.{Fcode:FA3|
00022d30  7d 09 73 65 74 73 20 62  61 63 6b 67 72 6f 75 6e  |}.sets backgroun|
00022d40  64 20 74 6f 20 31 30 20  61 6e 64 20 66 6f 72 65  |d to 10 and fore|
00022d50  67 72 6f 75 6e 64 20 74  6f 20 33 2e 0a 09 7b 46  |ground to 3...{F|
00022d60  63 6f 64 65 3a 46 30 37  7d 09 73 65 74 73 20 62  |code:F07}.sets b|
00022d70  61 63 6b 67 72 6f 75 6e  64 20 74 6f 20 30 20 61  |ackground to 0 a|
00022d80  6e 64 20 66 6f 72 65 67  72 6f 75 6e 64 20 74 6f  |nd foreground to|
00022d90  20 37 20 28 64 65 66 61  75 6c 74 29 2e 0a 23 0a  | 7 (default)..#.|
00022da0  23 53 75 62 70 61 67 65  20 43 0a 56 61 6c 69 64  |#Subpage C.Valid|
00022db0  61 74 69 6f 6e 20 73 74  72 69 6e 67 20 27 43 27  |ation string 'C'|
00022dc0  0a 55 73 65 3a 09 32 34  2d 62 69 74 20 63 6f 6c  |.Use:.24-bit col|
00022dd0  6f 75 72 20 69 6e 20 6e  6f 72 6d 61 6c 20 69 63  |our in normal ic|
00022de0  6f 6e 73 0a 0a 53 79 6e  74 61 78 3a 09 7b 46 63  |ons..Syntax:.{Fc|
00022df0  6f 64 65 3a 43 5b 66 6f  72 65 5d 5b 2f 62 61 63  |ode:C[fore][/bac|
00022e00  6b 5d 7d 0a 09 66 6f 72  65 20 3d 20 66 6f 72 65  |k]}..fore = fore|
00022e10  67 72 6f 75 6e 64 20 63  6f 6c 6f 75 72 20 69 6e  |ground colour in|
00022e20  20 66 6f 72 6d 20 42 42  47 47 52 52 0a 09 62 61  | form BBGGRR..ba|
00022e30  63 6b 20 3d 20 62 61 63  6b 67 72 6f 75 6e 64 20  |ck = background |
00022e40  63 6f 6c 6f 75 72 20 69  6e 20 66 6f 72 6d 20 42  |colour in form B|
00022e50  42 47 47 52 52 0a 0a 4e  6f 74 65 73 3a 09 54 68  |BGGRR..Notes:.Th|
00022e60  69 73 20 63 61 6c 6c 20  75 73 65 73 20 69 73 20  |is call uses is |
00022e70  6f 6e 6c 79 20 61 76 61  69 6c 61 62 6c 65 20 77  |only available w|
00022e80  69 74 68 20 57 69 6e 64  6f 77 4d 61 6e 61 67 65  |ith WindowManage|
00022e90  72 20 61 66 74 65 72 20  33 2e 38 30 2e 0a 0a 45  |r after 3.80...E|
00022ea0  78 61 6d 70 6c 65 73 3a  09 7b 46 63 6f 64 65 3a  |xamples:.{Fcode:|
00022eb0  43 30 30 38 30 30 30 2f  30 30 38 30 46 46 7d 09  |C008000/0080FF}.|
00022ec0  6d 69 64 20 67 72 65 65  6e 20 66 6f 72 65 67 72  |mid green foregr|
00022ed0  6f 75 6e 64 2c 20 6f 72  61 6e 67 65 20 62 61 63  |ound, orange bac|
00022ee0  6b 67 72 6f 75 6e 64 0a  09 7b 46 63 6f 64 65 3a  |kground..{Fcode:|
00022ef0  43 46 46 30 30 46 46 7d  09 09 6d 61 67 65 6e 74  |CFF00FF}..magent|
00022f00  61 20 66 6f 72 65 67 72  6f 75 6e 64 2c 20 62 61  |a foreground, ba|
00022f10  63 6b 67 72 6f 75 6e 64  20 61 73 20 73 70 65 63  |ckground as spec|
00022f20  69 66 69 65 64 20 69 6e  20 66 6c 61 67 73 20 77  |ified in flags w|
00022f30  6f 72 64 0a 09 7b 46 63  6f 64 65 3a 43 2f 46 46  |ord..{Fcode:C/FF|
00022f40  30 30 46 46 7d 09 66 6f  72 65 67 72 6f 75 6e 64  |00FF}.foreground|
00022f50  20 61 73 20 73 70 65 63  69 66 69 65 64 20 69 6e  | as specified in|
00022f60  20 74 68 65 20 66 6c 61  67 73 20 77 6f 72 64 2c  | the flags word,|
00022f70  20 79 65 6c 6c 6f 77 20  62 61 63 6b 67 72 6f 75  | yellow backgrou|
00022f80  6e 64 0a 23 0a 23 53 75  62 70 61 67 65 20 4b 0a  |nd.#.#Subpage K.|
00022f90  56 61 6c 69 64 61 74 69  6f 6e 20 73 74 72 69 6e  |Validation strin|
00022fa0  67 20 27 4b 27 0a 55 73  65 3a 09 41 73 73 69 67  |g 'K'.Use:.Assig|
00022fb0  6e 73 20 66 75 6e 63 74  69 6f 6e 61 6c 69 74 79  |ns functionality|
00022fc0  20 74 6f 20 73 70 65 63  69 66 69 63 20 6b 65 79  | to specific key|
00022fd0  73 2e 0a 0a 53 79 6e 74  61 78 3a 09 7b 46 63 6f  |s...Syntax:.{Fco|
00022fe0  64 65 3a 4b 6f 70 74 69  6f 6e 73 7d 0a 0a 4f 70  |de:Koptions}..Op|
00022ff0  74 69 6f 6e 73 3a 09 52  09 52 65 74 75 72 6e 20  |tions:.R.Return |
00023000  6d 6f 76 65 73 20 63 61  72 65 74 20 74 6f 20 6e  |moves caret to n|
00023010  65 78 74 20 77 72 69 74  61 62 6c 65 20 69 63 6f  |ext writable ico|
00023020  6e 2e 20 28 45 78 63 65  70 74 20 66 6f 72 20 6c  |n. (Except for l|
00023030  61 73 74 2e 29 0a 09 41  09 55 70 2f 44 6f 77 6e  |ast.)..A.Up/Down|
00023040  20 61 72 72 6f 77 20 6d  6f 76 65 73 20 74 6f 20  | arrow moves to |
00023050  70 72 65 76 2f 6e 65 78  74 20 77 72 69 74 61 62  |prev/next writab|
00023060  6c 65 0a 09 54 09 54 61  62 20 6d 6f 76 65 73 20  |le..T.Tab moves |
00023070  74 6f 20 6e 65 78 74 2c  20 73 68 69 66 74 2d 54  |to next, shift-T|
00023080  61 62 20 74 6f 20 70 72  65 76 69 6f 75 73 0a 09  |ab to previous..|
00023090  44 09 44 65 6c 65 74 69  6e 67 20 77 69 6c 6c 20  |D.Deleting will |
000230a0  61 6c 73 6f 20 72 65 70  6f 72 74 20 74 68 65 20  |also report the |
000230b0  6b 65 79 70 72 65 73 73  0a 09 4e 09 54 61 73 6b  |keypress..N.Task|
000230c0  20 77 69 6c 6c 20 62 65  20 6e 6f 74 69 66 69 65  | will be notifie|
000230d0  64 20 6f 66 20 61 6c 6c  20 6b 65 79 70 72 65 73  |d of all keypres|
000230e0  73 65 73 20 69 6e 20 69  63 6f 6e 0a 0a 45 78 61  |ses in icon..Exa|
000230f0  6d 70 6c 65 73 3a 09 7b  46 63 6f 64 65 3a 4b 74  |mples:.{Fcode:Kt|
00023100  61 72 6e 7d 0a 09 09 7b  46 63 6f 64 65 7d 4b 6e  |arn}...{Fcode}Kn|
00023110  64 7b 66 7d 0a 23 0a 23  53 75 62 70 61 67 65 20  |d{f}.#.#Subpage |
00023120  4c 0a 56 61 6c 69 64 61  74 69 6f 6e 20 73 74 72  |L.Validation str|
00023130  69 6e 67 20 27 4c 27 0a  55 73 65 3a 09 46 6f 72  |ing 'L'.Use:.For|
00023140  6d 61 74 74 69 6e 67 20  74 65 78 74 20 74 6f 20  |matting text to |
00023150  66 69 74 20 74 68 65 20  69 63 6f 6e 20 61 73 20  |fit the icon as |
00023160  62 65 73 74 20 61 73 20  70 6f 73 73 69 62 6c 65  |best as possible|
00023170  2e 0a 0a 53 79 6e 74 61  78 3a 09 7b 46 63 6f 64  |...Syntax:.{Fcod|
00023180  65 3a 4c 5b 68 5d 7d 0a  09 68 20 69 73 20 74 68  |e:L[h]}..h is th|
00023190  65 20 76 65 72 74 69 63  61 6c 20 73 70 61 63 69  |e vertical spaci|
000231a0  6e 67 20 62 65 74 77 65  65 6e 20 6c 69 6e 65 73  |ng between lines|
000231b0  20 6f 66 20 74 65 78 74  20 69 6e 20 4f 53 20 75  | of text in OS u|
000231c0  6e 69 74 73 2e 20 49 66  20 6f 6d 69 74 74 65 64  |nits. If omitted|
000231d0  2c 20 34 30 20 75 6e 69  74 73 20 69 73 20 75 73  |, 40 units is us|
000231e0  65 64 20 28 61 20 73 79  73 74 65 6d 20 66 6f 6e  |ed (a system fon|
000231f0  74 20 63 68 61 72 61 63  74 65 72 20 69 73 20 33  |t character is 3|
00023200  32 20 4f 53 20 75 6e 69  74 73 20 68 69 67 68 29  |2 OS units high)|
00023210  2e 0a 0a 4e 6f 74 65 73  3a 09 54 68 69 73 20 6f  |...Notes:.This o|
00023220  70 74 69 6f 6e 20 63 61  6e 20 6f 6e 6c 79 20 62  |ption can only b|
00023230  65 20 75 73 65 64 20 77  69 74 68 20 69 63 6f 6e  |e used with icon|
00023240  73 20 77 68 69 63 68 20  61 72 65 20 68 6f 72 69  |s which are hori|
00023250  7a 6f 6e 74 61 6c 6c 79  20 61 6e 64 20 76 65 72  |zontally and ver|
00023260  74 69 63 61 6c 6c 79 20  63 65 6e 74 72 65 64 2c  |tically centred,|
00023270  20 61 6e 64 20 64 6f 20  6e 6f 74 20 63 6f 6e 74  | and do not cont|
00023280  61 69 6e 20 61 6e 20 61  6e 74 69 2d 61 6c 69 61  |ain an anti-alia|
00023290  73 65 64 20 66 6f 6e 74  2e 20 54 68 65 20 69 63  |sed font. The ic|
000232a0  6f 6e 20 6d 75 73 74 20  6e 6f 74 20 62 65 20 77  |on must not be w|
000232b0  72 69 74 65 61 62 6c 65  2c 20 73 69 6e 63 65 20  |riteable, since |
000232c0  74 68 65 20 63 61 72 65  74 20 77 6f 75 6c 64 20  |the caret would |
000232d0  6e 6f 74 20 62 65 20 70  6f 73 69 74 69 6f 6e 65  |not be positione|
000232e0  64 20 63 6f 72 72 65 63  74 6c 79 20 69 6e 73 69  |d correctly insi|
000232f0  64 65 20 69 74 2e 0a 0a  09 54 68 65 20 68 65 69  |de it....The hei|
00023300  67 68 74 20 77 69 6c 6c  20 6f 6e 6c 79 20 74 61  |ght will only ta|
00023310  6b 65 20 65 66 66 65 63  74 20 6f 6e 20 57 69 6e  |ke effect on Win|
00023320  64 6f 77 20 4d 61 6e 61  67 65 72 73 20 61 66 74  |dow Managers aft|
00023330  65 72 20 33 2e 38 30 2e  0a 0a 45 78 61 6d 70 6c  |er 3.80...Exampl|
00023340  65 73 3a 09 7b 46 63 6f  64 65 3a 4c 34 30 7d 0a  |es:.{Fcode:L40}.|
00023350  23 0a 23 53 75 62 70 61  67 65 20 50 0a 56 61 6c  |#.#Subpage P.Val|
00023360  69 64 61 74 69 6f 6e 20  73 74 72 69 6e 67 20 27  |idation string '|
00023370  50 27 0a 55 73 65 3a 09  54 68 65 20 63 68 61 6e  |P'.Use:.The chan|
00023380  67 69 6e 67 20 6f 66 20  74 68 65 20 70 6f 69 6e  |ging of the poin|
00023390  74 65 72 20 73 68 61 70  65 20 61 6e 64 20 61 63  |ter shape and ac|
000233a0  74 69 76 65 20 70 6f 69  6e 74 2e 0a 0a 53 79 6e  |tive point...Syn|
000233b0  74 61 78 3a 09 7b 46 63  6f 64 65 3a 50 73 70 72  |tax:.{Fcode:Pspr|
000233c0  69 74 65 6e 61 6d 65 5b  2c 78 2c 79 5d 7d 0a 09  |itename[,x,y]}..|
000233d0  73 70 72 69 74 65 6e 61  6d 65 20 69 73 20 61 20  |spritename is a |
000233e0  73 70 72 69 74 65 20 69  6e 20 74 68 65 20 57 69  |sprite in the Wi|
000233f0  6d 70 20 73 70 72 69 74  65 20 70 6f 6f 6c 2e 0a  |mp sprite pool..|
00023400  09 78 20 61 6e 64 20 79  20 61 72 65 20 74 68 65  |.x and y are the|
00023410  20 6e 65 77 20 61 63 74  69 76 65 20 70 6f 69 6e  | new active poin|
00023420  74 73 20 66 6f 72 20 74  68 65 20 70 6f 69 6e 74  |ts for the point|
00023430  65 72 2e 0a 0a 45 78 61  6d 70 6c 65 73 3a 09 7b  |er...Examples:.{|
00023440  46 63 6f 64 65 3a 50 70  74 72 5f 77 72 69 74 65  |Fcode:Pptr_write|
00023450  2c 34 2c 34 7d 09 50 6f  69 6e 74 65 72 20 66 6f  |,4,4}.Pointer fo|
00023460  72 20 77 72 69 74 61 62  6c 65 20 69 63 6f 6e 73  |r writable icons|
00023470  2e 0a 09 09 7b 46 63 6f  64 65 3a 50 70 74 72 5f  |....{Fcode:Pptr_|
00023480  6d 65 6e 75 2c 36 2c 35  7d 09 50 6f 69 6e 74 65  |menu,6,5}.Pointe|
00023490  72 20 66 6f 72 20 70 6f  70 2d 75 70 20 6d 65 6e  |r for pop-up men|
000234a0  75 20 69 63 6f 6e 73 2e  0a 23 0a 23 53 75 62 70  |u icons..#.#Subp|
000234b0  61 67 65 20 52 0a 56 61  6c 69 64 61 74 69 6f 6e  |age R.Validation|
000234c0  20 73 74 72 69 6e 67 20  27 52 27 0a 55 73 65 3a  | string 'R'.Use:|
000234d0  09 54 68 72 65 65 20 64  69 6d 65 6e 73 69 6f 6e  |.Three dimension|
000234e0  61 6c 20 62 6f 72 64 65  72 73 20 66 6f 72 20 69  |al borders for i|
000234f0  63 6f 6e 73 2e 0a 0a 53  79 6e 74 61 78 3a 09 7b  |cons...Syntax:.{|
00023500  46 63 6f 64 65 3a 52 74  79 70 65 5b 2c 70 75 73  |Fcode:Rtype[,pus|
00023510  68 63 6f 6c 6f 75 72 5d  7d 0a 09 70 75 73 68 63  |hcolour]}..pushc|
00023520  6f 6c 6f 75 72 20 69 73  20 75 73 65 64 20 66 6f  |olour is used fo|
00023530  72 20 77 68 65 6e 20 74  68 65 20 69 63 6f 6e 20  |r when the icon |
00023540  69 73 20 69 6e 20 61 20  73 65 6c 65 63 74 65 64  |is in a selected|
00023550  20 73 74 61 74 65 20 66  6f 72 20 74 79 70 65 73  | state for types|
00023560  20 35 20 61 6e 64 20 36  2e 0a 54 79 70 65 73 3a  | 5 and 6..Types:|
00023570  09 31 09 73 6c 61 62 20  6f 75 74 0a 09 32 09 73  |.1.slab out..2.s|
00023580  6c 61 62 20 69 6e 0a 09  33 09 72 69 64 67 65 0a  |lab in..3.ridge.|
00023590  09 34 09 63 68 61 6e 6e  65 6c 0a 09 35 09 61 63  |.4.channel..5.ac|
000235a0  74 69 6f 6e 20 62 75 74  74 6f 6e 0a 09 36 09 64  |tion button..6.d|
000235b0  65 66 61 75 6c 74 20 61  63 74 69 6f 6e 0a 09 37  |efault action..7|
000235c0  09 77 72 69 74 61 62 6c  65 0a 0a 45 78 61 6d 70  |.writable..Examp|
000235d0  6c 65 73 3a 09 7b 46 63  6f 64 65 3a 52 35 2c 33  |les:.{Fcode:R5,3|
000235e0  7d 09 41 63 74 69 6f 6e  20 62 75 74 74 6f 6e 20  |}.Action button |
000235f0  77 68 69 63 68 20 73 69  6e 6b 73 20 64 6f 77 6e  |which sinks down|
00023600  20 74 6f 20 63 6f 6c 6f  75 72 20 33 20 28 41 63  | to colour 3 (Ac|
00023610  6f 72 6e 20 61 70 70 72  6f 76 65 64 20 74 79 70  |orn approved typ|
00023620  65 29 0a 20 09 09 7b 46  63 6f 64 65 3a 52 34 7d  |e). ..{Fcode:R4}|
00023630  09 41 63 6f 72 6e 20 72  65 63 6f 6d 6d 65 6e 64  |.Acorn recommend|
00023640  65 64 20 62 6f 72 64 65  72 20 74 79 70 65 2e 0a  |ed border type..|
00023650  23 0a 23 53 75 62 70 61  67 65 20 53 0a 56 61 6c  |#.#Subpage S.Val|
00023660  69 64 61 74 69 6f 6e 20  73 74 72 69 6e 67 20 27  |idation string '|
00023670  53 27 0a 55 73 65 3a 09  49 6e 63 6c 75 64 69 6e  |S'.Use:.Includin|
00023680  67 20 73 70 72 69 74 65  73 20 69 6e 20 69 6e 64  |g sprites in ind|
00023690  69 72 65 63 74 65 64 20  69 63 6f 6e 73 0a 0a 53  |irected icons..S|
000236a0  79 6e 74 61 78 3a 09 7b  46 63 6f 64 65 3a 53 73  |yntax:.{Fcode:Ss|
000236b0  70 72 69 74 65 6e 61 6d  65 5b 2c 3c 73 65 6c 65  |pritename[,<sele|
000236c0  63 74 65 64 5c 3e 5d 7d  0a 09 73 65 6c 65 63 74  |cted\>]}..select|
000236d0  65 64 20 69 73 20 75 73  65 64 20 66 6f 72 20 77  |ed is used for w|
000236e0  68 65 6e 20 74 68 65 20  69 63 6f 6e 20 69 73 20  |hen the icon is |
000236f0  69 6e 20 61 20 73 65 6c  65 63 74 65 64 20 73 74  |in a selected st|
00023700  61 74 65 2e 0a 0a 45 78  61 6d 70 6c 65 73 3a 09  |ate...Examples:.|
00023710  7b 46 63 6f 64 65 7d 09  53 73 77 69 74 63 68 65  |{Fcode}.Sswitche|
00023720  72 0a 09 09 53 6f 70 74  6f 66 66 2c 6f 70 74 6f  |r...Soptoff,opto|
00023730  6e 7b 46 7d 0a 00 00 00  44 41 54 41 22 01 00 00  |n{F}....DATA"...|
00023740  57 69 6d 70 5f 57 68 69  63 68 49 63 6f 6e 20 20  |Wimp_WhichIcon  |
00023750  28 26 34 30 30 44 36 29  0a 23 50 61 72 65 6e 74  |(&400D6).#Parent|
00023760  20 57 69 6d 70 5f 0a 3d  3e 09 52 30 20 3d 09 57  | Wimp_.=>.R0 =.W|
00023770  69 6e 64 6f 77 20 68 61  6e 64 6c 65 0a 09 52 31  |indow handle..R1|
00023780  20 3d 09 42 6c 6f 63 6b  20 74 6f 20 63 6f 6e 74  | =.Block to cont|
00023790  61 69 6e 20 69 63 6f 6e  20 68 61 6e 64 6c 65 73  |ain icon handles|
000237a0  0a 09 52 32 20 3d 09 42  69 74 20 6d 61 73 6b 0a  |..R2 =.Bit mask.|
000237b0  09 52 33 20 3d 09 42 69  74 20 73 65 74 74 69 6e  |.R3 =.Bit settin|
000237c0  67 73 20 74 6f 20 6d 61  74 63 68 0a 3c 3d 09 52  |gs to match.<=.R|
000237d0  30 20 63 6f 72 72 75 70  74 0a 0a 41 6c 6c 20 69  |0 corrupt..All i|
000237e0  63 6f 6e 73 20 77 69 74  68 0a 23 57 72 61 70 20  |cons with.#Wrap |
000237f0  4f 66 66 0a 20 20 28 69  63 6f 6e 20 66 6c 61 67  |Off.  (icon flag|
00023800  73 20 41 4e 44 20 52 32  29 20 3d 20 28 52 33 20  |s AND R2) = (R3 |
00023810  41 4e 44 20 52 32 29 0a  23 57 72 61 70 20 4f 6e  |AND R2).#Wrap On|
00023820  0a 61 72 65 20 61 64 64  65 64 20 74 6f 20 74 68  |.are added to th|
00023830  65 20 6c 69 73 74 20 69  6e 20 52 31 2e 0a 54 68  |e list in R1..Th|
00023840  65 20 6c 69 73 74 20 69  73 20 74 65 72 6d 69 6e  |e list is termin|
00023850  61 74 65 64 20 62 79 20  2d 31 00 00 44 41 54 41  |ated by -1..DATA|
00023860  86 04 00 00 46 6f 72 6d  61 74 20 6f 66 20 61 20  |....Format of a |
00023870  77 69 6e 64 6f 77 20 62  6c 6f 63 6b 0a 23 50 61  |window block.#Pa|
00023880  72 65 6e 74 20 57 69 6d  70 5f 43 72 65 61 74 65  |rent Wimp_Create|
00023890  57 69 6e 64 6f 77 0a 23  57 72 61 70 20 6f 66 66  |Window.#Wrap off|
000238a0  0a 4f 66 66 73 65 74 09  43 6f 6e 74 65 6e 74 73  |.Offset.Contents|
000238b0  0a 23 4c 69 6e 65 0a 30  09 56 69 73 69 62 6c 65  |.#Line.0.Visible|
000238c0  20 61 72 65 61 20 6d 69  6e 69 6d 75 6d 20 78 0a  | area minimum x.|
000238d0  34 09 56 69 73 69 62 6c  65 20 61 72 65 61 20 6d  |4.Visible area m|
000238e0  69 6e 69 6d 75 6d 20 79  0a 38 09 56 69 73 69 62  |inimum y.8.Visib|
000238f0  6c 65 20 61 72 65 61 20  6d 61 78 69 6d 75 6d 20  |le area maximum |
00023900  78 0a 31 32 09 56 69 73  69 62 6c 65 20 61 72 65  |x.12.Visible are|
00023910  61 20 6d 61 78 69 6d 75  6d 20 79 0a 31 36 09 53  |a maximum y.16.S|
00023920  63 72 6f 6c 6c 20 78 20  6f 66 66 73 65 74 0a 32  |croll x offset.2|
00023930  30 09 53 63 72 6f 6c 6c  20 79 20 6f 66 66 73 65  |0.Scroll y offse|
00023940  74 0a 32 34 09 3c 48 61  6e 64 6c 65 20 74 6f 20  |t.24.<Handle to |
00023950  6f 70 65 6e 20 77 69 6e  64 6f 77 20 62 65 68 69  |open window behi|
00023960  6e 64 3d 3e 77 69 6d 70  5f 77 69 6e 64 6f 77 6c  |nd=>wimp_windowl|
00023970  6f 63 61 74 69 6f 6e 3e  0a 32 38 09 3c 57 69 6e  |ocation>.28.<Win|
00023980  64 6f 77 20 66 6c 61 67  73 3d 3e 77 69 6d 70 5f  |dow flags=>wimp_|
00023990  77 69 6e 64 6f 77 66 6c  61 67 73 3e 09 09 09 4e  |windowflags>...N|
000239a0  6f 72 6d 61 6c 20 76 61  6c 75 65 73 0a 33 32 09  |ormal values.32.|
000239b0  54 69 74 6c 65 20 66 6f  72 65 67 72 6f 75 6e 64  |Title foreground|
000239c0  2c 20 61 6e 64 20 66 72  61 6d 65 20 63 6f 6c 6f  |, and frame colo|
000239d0  75 72 09 09 09 37 20 42  6c 61 63 6b 0a 09 28 26  |ur...7 Black..(&|
000239e0  46 46 20 6d 65 61 6e 73  20 6e 6f 20 66 72 61 6d  |FF means no fram|
000239f0  65 20 2d 20 61 6e 64 20  6e 6f 20 74 69 74 6c 65  |e - and no title|
00023a00  20 6f 72 20 73 63 72 6f  6c 6c 62 61 72 73 20 77  | or scrollbars w|
00023a10  68 65 6e 20 6e 6f 74 20  75 73 69 6e 67 20 6e 65  |hen not using ne|
00023a20  73 74 65 64 20 57 69 6d  70 29 0a 33 33 09 54 69  |sted Wimp).33.Ti|
00023a30  74 6c 65 20 62 61 63 6b  67 72 6f 75 6e 64 09 09  |tle background..|
00023a40  09 09 09 32 20 47 72 65  79 0a 33 34 09 57 6f 72  |...2 Grey.34.Wor|
00023a50  6b 20 61 72 65 61 20 66  6f 72 65 67 72 6f 75 6e  |k area foregroun|
00023a60  64 0a 33 35 09 57 6f 72  6b 20 61 72 65 61 20 62  |d.35.Work area b|
00023a70  61 63 6b 67 72 6f 75 6e  64 20 28 26 46 46 20 6d  |ackground (&FF m|
00023a80  65 61 6e 73 20 57 69 6d  70 20 77 6f 6e 27 74 20  |eans Wimp won't |
00023a90  63 6c 65 61 72 29 0a 33  36 09 53 63 72 6f 6c 6c  |clear).36.Scroll|
00023aa0  62 61 72 20 6f 75 74 65  72 20 63 6f 6c 6f 75 72  |bar outer colour|
00023ab0  09 09 09 09 09 33 20 4d  69 64 20 67 72 65 79 0a  |.....3 Mid grey.|
00023ac0  33 37 09 53 63 72 6f 6c  6c 62 61 72 20 69 6e 6e  |37.Scrollbar inn|
00023ad0  65 72 20 63 6f 6c 6f 75  72 09 09 09 09 09 31 20  |er colour.....1 |
00023ae0  4c 69 67 68 74 20 67 72  65 79 0a 33 38 09 54 69  |Light grey.38.Ti|
00023af0  74 6c 65 20 62 61 63 6b  67 72 6f 75 6e 64 20 77  |tle background w|
00023b00  68 65 6e 20 69 6e 70 75  74 20 66 6f 63 75 73 09  |hen input focus.|
00023b10  09 09 31 32 20 43 72 65  61 6d 0a 33 39 09 30 0a  |..12 Cream.39.0.|
00023b20  34 30 09 57 6f 72 6b 20  61 72 65 61 20 6d 69 6e  |40.Work area min|
00023b30  69 6d 75 6d 20 78 0a 34  34 09 57 6f 72 6b 20 61  |imum x.44.Work a|
00023b40  72 65 61 20 6d 69 6e 69  6d 75 6d 20 79 0a 34 38  |rea minimum y.48|
00023b50  09 57 6f 72 6b 20 61 72  65 61 20 6d 61 78 69 6d  |.Work area maxim|
00023b60  75 6d 20 78 0a 35 32 09  57 6f 72 6b 20 61 72 65  |um x.52.Work are|
00023b70  61 20 6d 61 78 69 6d 75  6d 20 79 0a 35 36 09 54  |a maximum y.56.T|
00023b80  69 74 6c 65 20 62 61 72  20 3c 69 63 6f 6e 20 66  |itle bar <icon f|
00023b90  6c 61 67 73 3d 3e 77 69  6d 70 5f 69 63 6f 6e 66  |lags=>wimp_iconf|
00023ba0  6c 61 67 73 3e 0a 36 30  09 3c 57 6f 72 6b 61 72  |lags>.60.<Workar|
00023bb0  65 61 20 27 62 75 74 74  6f 6e 27 20 66 6c 61 67  |ea 'button' flag|
00023bc0  73 3d 3e 77 69 6d 70 5f  77 6f 72 6b 61 72 65 61  |s=>wimp_workarea|
00023bd0  62 75 74 74 6f 6e 66 6c  61 67 73 3e 0a 36 34 09  |buttonflags>.64.|
00023be0  53 70 72 69 74 65 20 61  72 65 61 20 63 6f 6e 74  |Sprite area cont|
00023bf0  72 6f 6c 20 62 6c 6f 63  6b 20 70 6f 69 6e 74 65  |rol block pointe|
00023c00  72 20 28 2b 31 20 66 6f  72 20 77 69 6d 70 29 0a  |r (+1 for wimp).|
00023c10  36 38 09 4d 69 6e 69 6d  75 6d 20 77 69 64 74 68  |68.Minimum width|
00023c20  20 20 20 28 4e 42 20 74  77 6f 20 62 79 74 65 73  |   (NB two bytes|
00023c30  29 0a 37 30 09 4d 69 6e  69 6d 75 6d 20 68 65 69  |).70.Minimum hei|
00023c40  67 68 74 20 20 28 4e 42  20 74 77 6f 20 62 79 74  |ght  (NB two byt|
00023c50  65 73 29 0a 37 32 09 3c  54 69 74 6c 65 20 64 61  |es).72.<Title da|
00023c60  74 61 3d 3e 57 69 6d 70  5f 69 63 6f 6e 64 61 74  |ta=>Wimp_icondat|
00023c70  61 3e 0a 38 34 09 4e 75  6d 62 65 72 20 6f 66 20  |a>.84.Number of |
00023c80  69 63 6f 6e 73 20 69 6e  20 69 6e 69 74 69 61 6c  |icons in initial|
00023c90  20 64 65 66 69 6e 69 74  69 6f 6e 20 28 30 20 6f  | definition (0 o|
00023ca0  72 20 6d 6f 72 65 29 0a  38 38 09 30 20 6f 72 20  |r more).88.0 or |
00023cb0  6d 6f 72 65 20 3c 69 63  6f 6e 20 62 6c 6f 63 6b  |more <icon block|
00023cc0  73 3d 3e 77 69 6d 70 5f  69 63 6f 6e 62 6c 6f 63  |s=>wimp_iconbloc|
00023cd0  6b 3e 2c 20 33 32 20 62  79 74 65 73 20 65 61 63  |k>, 32 bytes eac|
00023ce0  68 0a 00 00 44 41 54 41  fe 06 00 00 57 69 6e 64  |h...DATA....Wind|
00023cf0  6f 77 20 66 6c 61 67 73  0a 42 69 74 73 20 09 4d  |ow flags.Bits .M|
00023d00  65 61 6e 69 6e 67 20 77  68 65 6e 20 73 65 74 0a  |eaning when set.|
00023d10  23 4c 69 6e 65 0a 30 09  4f 6c 64 20 2d 20 48 61  |#Line.0.Old - Ha|
00023d20  73 20 74 69 74 6c 65 20  62 61 72 0a 31 09 57 69  |s title bar.1.Wi|
00023d30  6e 64 6f 77 20 69 73 20  6d 6f 76 65 61 62 6c 65  |ndow is moveable|
00023d40  20 28 64 72 61 67 67 61  62 6c 65 29 2e 0a 32 09  | (draggable)..2.|
00023d50  4f 6c 64 20 2d 20 56 65  72 74 69 63 61 6c 20 73  |Old - Vertical s|
00023d60  63 72 6f 6c 6c 20 62 61  72 0a 33 09 4f 6c 64 20  |croll bar.3.Old |
00023d70  2d 20 48 6f 72 69 7a 6f  6e 74 61 6c 20 73 63 72  |- Horizontal scr|
00023d80  6f 6c 6c 20 62 61 72 0a  34 09 57 69 6e 64 6f 77  |oll bar.4.Window|
00023d90  20 63 61 6e 20 62 65 20  64 72 61 77 6e 20 63 6f  | can be drawn co|
00023da0  6d 70 6c 65 74 65 6c 79  20 62 79 20 57 69 6d 70  |mpletely by Wimp|
00023db0  2e 0a 35 09 57 69 6e 64  6f 77 20 69 73 20 61 20  |..5.Window is a |
00023dc0  70 61 6e 65 2e 0a 36 09  57 69 6e 64 6f 77 20 63  |pane..6.Window c|
00023dd0  61 6e 20 62 65 20 6f 70  65 6e 65 64 2f 64 72 61  |an be opened/dra|
00023de0  67 67 65 64 20 6f 75 74  73 69 64 65 20 73 63 72  |gged outside scr|
00023df0  65 65 6e 2e 0a 37 09 4f  6c 64 20 2d 20 48 61 73  |een..7.Old - Has|
00023e00  20 6e 6f 20 71 75 69 74  20 6f 72 20 62 61 63 6b  | no quit or back|
00023e10  20 62 6f 78 65 73 0a 38  09 52 65 74 75 72 6e 20  | boxes.8.Return |
00023e20  53 63 72 6f 6c 6c 20 52  65 71 75 65 73 74 20 77  |Scroll Request w|
00023e30  69 74 68 20 61 75 74 6f  72 65 70 65 61 74 2e 0a  |ith autorepeat..|
00023e40  39 09 52 65 74 75 72 6e  20 53 63 72 6f 6c 6c 20  |9.Return Scroll |
00023e50  52 65 71 75 65 73 74 20  77 69 74 68 6f 75 74 20  |Request without |
00023e60  61 75 74 6f 72 65 70 65  61 74 2e 0a 31 30 09 54  |autorepeat..10.T|
00023e70  72 65 61 74 20 63 6f 6c  6f 75 72 73 20 67 69 76  |reat colours giv|
00023e80  65 6e 20 61 73 20 47 43  4f 4c 20 6e 75 6d 62 65  |en as GCOL numbe|
00023e90  72 73 20 3d 3e 20 30 2e  2e 32 35 34 0a 31 31 09  |rs => 0..254.11.|
00023ea0  44 6f 6e 27 74 20 61 6c  6c 6f 77 20 61 6e 79 20  |Don't allow any |
00023eb0  77 69 6e 64 6f 77 20 62  65 6c 6f 77 20 74 68 69  |window below thi|
00023ec0  73 20 6f 6e 65 2e 0a 31  32 09 54 72 61 70 20 6b  |s one..12.Trap k|
00023ed0  65 79 70 72 65 73 73 65  73 2e 0a 31 33 20 20 2b  |eypresses..13  +|
00023ee0  09 46 6f 72 63 65 20 77  69 6e 64 6f 77 20 74 6f  |.Force window to|
00023ef0  20 73 74 61 79 20 6f 6e  20 73 63 72 65 65 6e 0a  | stay on screen.|
00023f00  31 34 20 20 2b 09 49 67  6e 6f 72 65 20 72 69 67  |14  +.Ignore rig|
00023f10  68 74 2d 65 78 74 65 6e  74 20 77 68 65 6e 20 64  |ht-extent when d|
00023f20  72 61 67 67 69 6e 67 20  73 69 7a 65 2d 62 6f 78  |ragging size-box|
00023f30  0a 31 35 20 20 2b 09 49  67 6e 6f 72 65 20 62 6f  |.15  +.Ignore bo|
00023f40  74 74 6f 6d 2d 65 78 74  65 6e 74 20 77 68 65 6e  |ttom-extent when|
00023f50  20 64 72 61 67 67 69 6e  67 20 73 69 7a 65 2d 62  | dragging size-b|
00023f60  6f 78 0a 31 36 09 57 69  6e 64 6f 77 20 69 73 20  |ox.16.Window is |
00023f70  6f 70 65 6e 2e 0a 31 37  09 57 69 6e 64 6f 77 20  |open..17.Window |
00023f80  69 73 20 66 75 6c 6c 79  20 76 69 73 69 62 6c 65  |is fully visible|
00023f90  2e 0a 31 38 09 57 69 6e  64 6f 77 20 68 61 73 20  |..18.Window has |
00023fa0  62 65 65 6e 20 74 6f 67  67 6c 65 64 20 74 6f 20  |been toggled to |
00023fb0  66 75 6c 6c 20 73 69 7a  65 2e 0a 31 39 09 4f 70  |full size..19.Op|
00023fc0  65 6e 20 57 69 6e 64 6f  77 20 52 65 71 75 65 73  |en Window Reques|
00023fd0  74 2c 20 69 73 20 63 61  75 73 65 64 20 62 79 20  |t, is caused by |
00023fe0  54 6f 67 67 6c 65 20 53  69 7a 65 2e 0a 32 30 09  |Toggle Size..20.|
00023ff0  57 69 6e 64 6f 77 20 68  61 73 20 74 68 65 20 69  |Window has the i|
00024000  6e 70 75 74 20 66 6f 63  75 73 2e 0a 32 31 20 20  |nput focus..21  |
00024010  2b 09 46 6f 72 63 65 20  77 69 6e 64 6f 77 20 74  |+.Force window t|
00024020  6f 20 73 63 72 65 65 6e  20 6f 6e 20 6e 65 78 74  |o screen on next|
00024030  20 3c 57 69 6d 70 5f 4f  70 65 6e 57 69 6e 64 6f  | <Wimp_OpenWindo|
00024040  77 3e 0a 32 32 20 20 2a  09 57 69 6e 64 6f 77 20  |w>.22  *.Window |
00024050  69 73 20 3c 70 61 72 74  69 61 6c 6c 79 20 66 75  |is <partially fu|
00024060  6c 6c 20 73 69 7a 65 3d  3e 2e 70 61 72 74 69 61  |ll size=>.partia|
00024070  6c 3e 2c 20 6e 6f 74 20  63 6f 76 65 72 69 6e 67  |l>, not covering|
00024080  20 69 63 6f 6e 62 61 72  20 28 6e 65 73 74 65 64  | iconbar (nested|
00024090  20 57 69 6d 70 20 6f 6e  6c 79 29 0a 32 33 20 20  | Wimp only).23  |
000240a0  2a 09 57 69 6e 64 6f 77  20 69 73 20 61 6c 6c 6f  |*.Window is allo|
000240b0  77 65 64 20 74 6f 20 62  65 20 70 61 72 74 20 6f  |wed to be part o|
000240c0  66 20 74 68 65 20 66 75  72 6e 69 74 75 72 65 20  |f the furniture |
000240d0  28 6e 65 73 74 65 64 20  57 69 6d 70 20 6f 6e 6c  |(nested Wimp onl|
000240e0  79 29 0a 32 34 09 57 69  6e 64 6f 77 20 68 61 73  |y).24.Window has|
000240f0  20 42 61 63 6b 20 69 63  6f 6e 0a 32 35 09 43 6c  | Back icon.25.Cl|
00024100  6f 73 65 20 69 63 6f 6e  0a 32 36 09 54 69 74 6c  |ose icon.26.Titl|
00024110  65 20 42 61 72 0a 32 37  09 54 6f 67 67 6c 65 20  |e Bar.27.Toggle |
00024120  73 69 7a 65 20 69 63 6f  6e 0a 32 38 09 56 65 72  |size icon.28.Ver|
00024130  74 69 63 61 6c 20 73 63  72 6f 6c 6c 62 61 72 0a  |tical scrollbar.|
00024140  32 39 09 41 64 6a 75 73  74 20 53 69 7a 65 20 69  |29.Adjust Size i|
00024150  63 6f 6e 0a 33 30 09 48  6f 72 69 7a 6f 6e 74 61  |con.30.Horizonta|
00024160  6c 20 53 63 72 6f 6c 6c  62 61 72 0a 33 31 09 31  |l Scrollbar.31.1|
00024170  20 66 6f 72 20 75 73 69  6e 67 20 6e 65 77 20 66  | for using new f|
00024180  6f 72 6d 61 74 2c 20 30  20 66 6f 72 20 6f 6c 64  |ormat, 0 for old|
00024190  0a 0a 2b 20 46 6c 61 67  20 69 73 20 6f 6e 6c 79  |..+ Flag is only|
000241a0  20 70 72 65 73 65 6e 74  20 69 6e 20 57 69 6e 64  | present in Wind|
000241b0  6f 77 4d 61 6e 61 67 65  72 20 33 2e 30 30 20 61  |owManager 3.00 a|
000241c0  6e 64 20 6c 61 74 65 72  0a 2a 20 46 6c 61 67 20  |nd later.* Flag |
000241d0  69 73 20 6f 6e 6c 79 20  70 72 65 73 65 6e 74 20  |is only present |
000241e0  69 6e 20 57 69 6e 64 6f  77 4d 61 6e 61 67 65 72  |in WindowManager|
000241f0  20 33 2e 38 30 20 61 6e  64 20 6c 61 74 65 72 0a  | 3.80 and later.|
00024200  23 73 75 62 70 61 67 65  20 70 61 72 74 69 61 6c  |#subpage partial|
00024210  0a 50 61 72 74 69 61 6c  20 66 75 6c 6c 20 73 69  |.Partial full si|
00024220  7a 65 20 66 6c 61 67 0a  54 68 65 20 70 61 72 74  |ze flag.The part|
00024230  69 61 6c 20 66 75 6c 6c  20 73 69 7a 65 20 66 6c  |ial full size fl|
00024240  61 67 20 69 73 20 75 73  65 64 20 77 68 65 6e 20  |ag is used when |
00024250  74 68 65 20 75 73 65 72  20 73 68 69 66 74 20 63  |the user shift c|
00024260  6c 69 63 6b 73 20 6f 6e  20 74 68 65 20 74 6f 67  |licks on the tog|
00024270  67 6c 65 20 69 63 6f 6e  2c 20 6c 65 61 76 69 6e  |gle icon, leavin|
00024280  67 20 74 68 65 20 69 63  6f 6e 62 61 72 20 76 69  |g the iconbar vi|
00024290  73 69 62 6c 65 2e 20 57  68 65 6e 20 61 6e 20 3c  |sible. When an <|
000242a0  4f 70 65 6e 57 69 6e 64  6f 77 20 72 65 71 75 65  |OpenWindow reque|
000242b0  73 74 3d 3e 57 69 6d 70  5f 50 6f 6c 6c 32 3e 20  |st=>Wimp_Poll2> |
000242c0  77 69 6e 64 6f 77 20 72  65 71 75 73 74 20 69 73  |window requst is|
000242d0  20 72 65 63 65 69 76 65  64 20 61 20 67 72 6f 75  | received a grou|
000242e0  70 20 6f 66 20 62 69 74  73 20 61 72 65 20 73 65  |p of bits are se|
000242f0  74 20 69 66 20 62 69 74  20 31 39 20 69 73 20 73  |t if bit 19 is s|
00024300  65 74 20 3a 0a 0a 62 31  38 09 62 32 31 09 62 32  |et :..b18.b21.b2|
00024310  32 09 4d 65 61 6e 69 6e  67 0a 23 4c 69 6e 65 0a  |2.Meaning.#Line.|
00024320  30 09 31 09 30 09 57 69  6e 64 6f 77 20 69 73 20  |0.1.0.Window is |
00024330  61 62 6f 75 74 20 74 6f  20 62 65 63 6f 6d 65 20  |about to become |
00024340  66 75 6c 6c 20 73 69 7a  65 0a 31 09 30 09 30 09  |full size.1.0.0.|
00024350  57 69 6e 64 6f 77 20 69  73 20 61 62 6f 75 74 20  |Window is about |
00024360  74 6f 20 73 68 72 69 6e  6b 20 66 72 6f 6d 20 66  |to shrink from f|
00024370  75 6c 6c 20 73 69 7a 65  0a 30 09 31 09 31 09 57  |ull size.0.1.1.W|
00024380  69 6e 64 6f 77 20 69 73  20 61 62 6f 75 74 20 74  |indow is about t|
00024390  6f 20 62 65 63 6f 6d 65  20 70 61 72 74 69 61 6c  |o become partial|
000243a0  20 66 75 6c 6c 20 73 69  7a 65 0a 30 09 30 09 30  | full size.0.0.0|
000243b0  09 57 69 6e 64 6f 77 20  69 73 20 61 62 6f 75 74  |.Window is about|
000243c0  20 74 6f 20 73 68 72 69  6e 6b 20 66 72 6f 6d 20  | to shrink from |
000243d0  70 61 72 74 69 61 6c 20  66 75 6c 6c 20 73 69 7a  |partial full siz|
000243e0  65 0a 00 00 44 41 54 41  c9 01 00 00 57 69 6e 64  |e...DATA....Wind|
000243f0  6f 77 20 42 75 74 74 6f  6e 20 74 79 70 65 73 0a  |ow Button types.|
00024400  23 57 72 61 70 20 4f 66  66 0a 42 69 74 73 20 31  |#Wrap Off.Bits 1|
00024410  32 2d 31 35 09 4d 65 61  6e 69 6e 67 0a 23 4c 69  |2-15.Meaning.#Li|
00024420  6e 65 0a 30 09 09 49 67  6e 6f 72 65 20 61 6c 6c  |ne.0..Ignore all|
00024430  20 63 6c 69 63 6b 73 0a  31 09 09 4e 6f 74 69 66  | clicks.1..Notif|
00024440  79 20 74 61 73 6b 20 63  6f 6e 74 69 6e 75 61 6c  |y task continual|
00024450  6c 79 2c 20 77 68 69 6c  65 20 70 6f 69 6e 74 65  |ly, while pointe|
00024460  72 20 6f 76 65 72 20 77  6f 72 6b 61 72 65 61 0a  |r over workarea.|
00024470  32 09 09 43 6c 69 63 6b  20 28 61 75 74 6f 2d 72  |2..Click (auto-r|
00024480  65 70 65 61 74 29 0a 33  09 09 43 6c 69 63 6b 20  |epeat).3..Click |
00024490  28 6e 6f 20 61 75 74 6f  2d 72 65 70 65 61 74 29  |(no auto-repeat)|
000244a0  0a 34 09 09 52 65 6c 65  61 73 65 20 6f 76 65 72  |.4..Release over|
000244b0  20 77 6f 72 6b 61 72 65  61 20 6e 6f 74 69 66 69  | workarea notifi|
000244c0  65 73 20 74 61 73 6b 0a  35 09 09 44 6f 75 62 6c  |es task.5..Doubl|
000244d0  65 20 63 6c 69 63 6b 0a  36 09 09 33 20 2b 20 64  |e click.6..3 + d|
000244e0  72 61 67 2e 0a 37 09 09  34 20 2b 20 64 72 61 67  |rag..7..4 + drag|
000244f0  2e 20 54 68 65 73 65 20  52 65 74 75 72 6e 20 62  |. These Return b|
00024500  75 74 74 6f 6e 20 73 74  61 74 65 20 2a 20 31 36  |utton state * 16|
00024510  0a 38 09 09 35 20 2b 20  64 72 61 67 2e 0a 39 09  |.8..5 + drag..9.|
00024520  09 61 73 20 33 0a 31 30  09 09 43 6c 69 63 6b 20  |.as 3.10..Click |
00024530  28 2a 32 35 36 29 2c 20  44 72 61 67 20 28 2a 31  |(*256), Drag (*1|
00024540  36 29 2c 20 44 6f 75 62  6c 65 20 63 6c 69 63 6b  |6), Double click|
00024550  20 28 2a 31 29 0a 31 31  09 09 43 6c 69 63 6b 20  | (*1).11..Click |
00024560  28 2a 31 29 2c 20 44 72  61 67 20 28 2a 31 36 29  |(*1), Drag (*16)|
00024570  0a 31 32 2d 31 34 09 09  52 65 73 65 72 76 65 64  |.12-14..Reserved|
00024580  0a 31 35 09 09 4d 6f 75  73 65 20 63 6c 69 63 6b  |.15..Mouse click|
00024590  20 63 61 75 73 65 73 20  77 69 6e 64 6f 77 20 74  | causes window t|
000245a0  6f 20 67 61 69 6e 20 63  61 72 65 74 2e 00 00 00  |o gain caret....|
000245b0  44 41 54 41 06 01 00 00  57 69 6d 70 5f 41 64 64  |DATA....Wimp_Add|
000245c0  4d 65 73 73 61 67 65 73  20 20 28 26 34 30 30 46  |Messages  (&400F|
000245d0  36 29 0a 23 50 61 72 65  6e 74 20 57 69 6d 70 5f  |6).#Parent Wimp_|
000245e0  0a 3d 3e 09 52 30 20 3d  09 50 6f 69 6e 74 65 72  |.=>.R0 =.Pointer|
000245f0  20 74 6f 20 61 72 72 61  79 20 6f 66 20 3c 6d 65  | to array of <me|
00024600  73 73 61 67 65 20 63 6f  64 65 73 3d 3e 4d 73 67  |ssage codes=>Msg|
00024610  5f 3e 20 28 74 65 72 6d  69 6e 61 74 65 64 20 77  |_> (terminated w|
00024620  69 74 68 20 30 20 77 6f  72 64 29 0a 0a 45 78 74  |ith 0 word)..Ext|
00024630  65 6e 64 73 20 74 68 65  20 73 65 74 20 6f 66 20  |ends the set of |
00024640  75 73 65 72 20 6d 65 73  73 61 67 65 73 20 74 68  |user messages th|
00024650  61 74 20 74 68 65 20 74  61 73 6b 20 67 65 74 73  |at the task gets|
00024660  2e 20 54 68 65 20 69 6e  69 74 61 6c 20 73 65 74  |. The inital set|
00024670  20 69 73 20 67 69 76 65  6e 20 62 79 20 52 33 20  | is given by R3 |
00024680  69 6e 20 3c 57 69 6d 70  5f 49 6e 69 74 69 61 6c  |in <Wimp_Initial|
00024690  69 73 65 3e 2e 20 53 65  65 20 61 6c 73 6f 20 3c  |ise>. See also <|
000246a0  57 69 6d 70 5f 52 65 6d  6f 76 65 4d 65 73 73 61  |Wimp_RemoveMessa|
000246b0  67 65 73 3e 2e 0a 00 00  44 41 54 41 9a 00 00 00  |ges>....DATA....|
000246c0  57 69 6d 70 5f 52 65 67  69 73 74 65 72 46 69 6c  |Wimp_RegisterFil|
000246d0  74 65 72 20 20 28 26 34  30 30 46 35 29 0a 55 73  |ter  (&400F5).Us|
000246e0  65 64 20 62 79 20 74 68  65 20 46 69 6c 74 65 72  |ed by the Filter|
000246f0  20 4d 61 6e 61 67 65 72  20 74 6f 20 63 6f 6d 6d  | Manager to comm|
00024700  75 6e 69 63 61 74 65 20  77 69 74 68 20 74 68 65  |unicate with the|
00024710  20 57 69 6d 70 0a 0a 44  6f 20 6e 6f 74 20 75 73  | Wimp..Do not us|
00024720  65 2e 20 55 73 65 20 74  68 65 20 3c 46 69 6c 74  |e. Use the <Filt|
00024730  65 72 4d 61 6e 61 67 65  72 3d 3e 46 69 6c 74 65  |erManager=>Filte|
00024740  72 5f 3e 20 53 57 49 73  20 69 6e 73 74 65 61 64  |r_> SWIs instead|
00024750  2e 0a 00 00 44 41 54 41  f2 00 00 00 57 69 6d 70  |....DATA....Wimp|
00024760  5f 52 65 6d 6f 76 65 4d  65 73 73 61 67 65 73 20  |_RemoveMessages |
00024770  20 28 26 34 30 30 46 37  29 0a 23 50 61 72 65 6e  | (&400F7).#Paren|
00024780  74 20 57 69 6d 70 5f 0a  3d 3e 09 52 30 20 3d 09  |t Wimp_.=>.R0 =.|
00024790  50 6f 69 6e 74 65 72 20  74 6f 20 61 72 72 61 79  |Pointer to array|
000247a0  20 6f 66 20 3c 6d 65 73  73 61 67 65 20 63 6f 64  | of <message cod|
000247b0  65 73 3d 3e 4d 73 67 5f  3e 20 28 74 65 72 6d 69  |es=>Msg_> (termi|
000247c0  6e 61 74 65 64 20 77 69  74 68 20 30 20 77 6f 72  |nated with 0 wor|
000247d0  64 29 0a 0a 52 65 6d 6f  76 65 73 20 74 68 65 20  |d)..Removes the |
000247e0  6d 65 73 73 61 67 65 73  20 69 6e 20 74 68 65 20  |messages in the |
000247f0  61 72 72 61 79 20 66 72  6f 6d 20 74 68 65 20 73  |array from the s|
00024800  65 74 20 6f 66 20 75 73  65 72 20 6d 65 73 73 61  |et of user messa|
00024810  67 65 73 20 74 68 61 74  20 74 68 65 20 74 61 73  |ges that the tas|
00024820  6b 20 67 65 74 73 2e 0a  0a 53 65 65 20 61 6c 73  |k gets...See als|
00024830  6f 20 3c 57 69 6d 70 5f  41 64 64 4d 65 73 73 61  |o <Wimp_AddMessa|
00024840  67 65 73 3e 2e 0a 00 00  44 41 54 41 75 04 00 00  |ges>....DATAu...|
00024850  57 69 6d 70 5f 54 65 78  74 4f 70 20 20 28 26 34  |Wimp_TextOp  (&4|
00024860  30 30 46 39 29 20 28 33  2e 35 29 0a 23 50 61 72  |00F9) (3.5).#Par|
00024870  65 6e 74 20 57 69 6d 70  5f 0a 3d 3e 09 52 30 20  |ent Wimp_.=>.R0 |
00024880  3d 09 72 65 61 73 6f 6e  20 63 6f 64 65 0a 09 20  |=.reason code.. |
00024890  09 20 30 09 3c 73 65 74  20 74 65 78 74 20 63 6f  |. 0.<set text co|
000248a0  6c 6f 75 72 73 3d 3e 2e  30 3e 0a 09 20 09 20 31  |lours=>.0>.. . 1|
000248b0  09 3c 63 61 6c 63 75 6c  61 74 65 20 77 69 64 74  |.<calculate widt|
000248c0  68 20 6f 66 20 73 74 72  69 6e 67 3d 3e 2e 31 3e  |h of string=>.1>|
000248d0  0a 09 20 09 20 32 09 3c  70 6c 6f 74 20 74 65 78  |.. . 2.<plot tex|
000248e0  74 3d 3e 2e 32 3e 0a 6f  74 68 65 72 20 72 65 67  |t=>.2>.other reg|
000248f0  69 73 74 65 72 73 20 64  65 70 65 6e 64 20 6f 6e  |isters depend on|
00024900  20 52 30 0a 0a 4f 70 65  72 61 74 69 6f 6e 73 20  | R0..Operations |
00024910  6f 6e 20 74 65 78 74 20  69 6e 20 74 68 65 20 63  |on text in the c|
00024920  75 72 72 65 6e 74 20 64  65 73 6b 74 6f 70 20 66  |urrent desktop f|
00024930  6f 6e 74 2e 20 28 4f 6e  6c 79 20 66 6f 72 20 52  |ont. (Only for R|
00024940  49 53 43 20 4f 53 20 33  2e 35 20 61 6e 64 20 6c  |ISC OS 3.5 and l|
00024950  61 74 65 72 29 0a 0a 53  65 65 20 61 6c 73 6f 3a  |ater)..See also:|
00024960  20 3c 57 69 6d 70 5f 52  65 61 64 53 79 73 49 6e  | <Wimp_ReadSysIn|
00024970  66 6f 3e 20 77 69 74 68  20 52 30 3d 38 0a 23 0a  |fo> with R0=8.#.|
00024980  23 53 75 62 70 61 67 65  20 30 0a 57 69 6d 70 5f  |#Subpage 0.Wimp_|
00024990  54 65 78 74 4f 70 20 30  20 28 26 34 30 30 46 39  |TextOp 0 (&400F9|
000249a0  29 0a 3d 3e 09 52 30 20  3d 09 30 0a 09 52 31 20  |).=>.R0 =.0..R1 |
000249b0  3d 09 66 6f 72 65 67 72  6f 75 6e 64 20 63 6f 6c  |=.foreground col|
000249c0  6f 75 72 0a 09 52 32 20  3d 09 62 61 63 6b 67 72  |our..R2 =.backgr|
000249d0  6f 75 6e 64 20 63 6f 6c  6f 75 72 0a 0a 53 65 74  |ound colour..Set|
000249e0  73 20 74 68 65 20 74 65  78 74 20 63 6f 6c 6f 75  |s the text colou|
000249f0  72 73 20 69 6e 20 74 68  65 20 66 6f 72 6d 20 26  |rs in the form &|
00024a00  42 42 47 47 52 52 30 30  2e 0a 23 0a 23 53 75 62  |BBGGRR00..#.#Sub|
00024a10  70 61 67 65 20 31 0a 57  69 6d 70 5f 54 65 78 74  |page 1.Wimp_Text|
00024a20  4f 70 20 31 20 28 26 34  30 30 46 39 29 0a 3d 3e  |Op 1 (&400F9).=>|
00024a30  09 52 30 20 3d 09 31 0a  09 52 31 20 3d 09 50 6f  |.R0 =.1..R1 =.Po|
00024a40  69 6e 74 65 72 20 74 6f  20 73 74 72 69 6e 67 0a  |inter to string.|
00024a50  09 52 32 20 3d 09 4e 75  6d 62 65 72 20 6f 66 20  |.R2 =.Number of |
00024a60  63 68 61 72 61 63 74 65  72 73 20 74 6f 20 73 63  |characters to sc|
00024a70  61 6e 2c 20 6f 72 20 30  20 66 6f 72 20 77 68 6f  |an, or 0 for who|
00024a80  6c 65 20 73 74 72 69 6e  67 0a 0a 3c 3d 09 52 30  |le string..<=.R0|
00024a90  20 3d 09 53 74 72 69 6e  67 20 77 69 64 74 68 20  | =.String width |
00024aa0  69 6e 20 4f 53 20 75 6e  69 74 73 0a 0a 43 61 6c  |in OS units..Cal|
00024ab0  63 75 6c 61 74 65 73 20  74 68 65 20 77 69 64 74  |culates the widt|
00024ac0  68 20 6f 66 20 61 20 28  73 75 62 29 73 74 72 69  |h of a (sub)stri|
00024ad0  6e 67 2c 20 69 66 20 70  6c 6f 74 74 65 64 20 69  |ng, if plotted i|
00024ae0  6e 20 74 68 65 20 63 75  72 72 65 6e 74 20 64 65  |n the current de|
00024af0  73 6b 74 6f 70 20 66 6f  6e 74 2e 20 44 65 73 6b  |sktop font. Desk|
00024b00  74 6f 70 20 66 6f 6e 74  20 63 61 6e 20 62 65 20  |top font can be |
00024b10  6f 75 74 6c 69 6e 65 20  66 6f 6e 74 20 6f 72 20  |outline font or |
00024b20  6f 6c 64 20 42 42 43 2d  74 79 70 65 20 66 6f 6e  |old BBC-type fon|
00024b30  74 2e 0a 23 0a 23 53 75  62 70 61 67 65 20 32 0a  |t..#.#Subpage 2.|
00024b40  57 69 6d 70 5f 54 65 78  74 4f 70 20 32 20 28 26  |Wimp_TextOp 2 (&|
00024b50  34 30 30 46 39 29 0a 3d  3e 09 52 30 20 3d 09 32  |400F9).=>.R0 =.2|
00024b60  20 2b 20 66 6c 61 67 73  3a 0a 09 20 09 20 09 42  | + flags:.. . .B|
00024b70  69 74 09 4d 65 61 6e 69  6e 67 0a 09 20 09 20 09  |it.Meaning.. . .|
00024b80  33 30 09 56 65 72 74 69  63 61 6c 6c 79 20 6a 75  |30.Vertically ju|
00024b90  73 74 69 66 79 2c 20 73  6f 20 62 61 73 65 6c 69  |stify, so baseli|
00024ba0  6e 65 20 6f 66 20 63 68  61 72 61 63 74 65 72 73  |ne of characters|
00024bb0  20 69 73 20 61 74 20 73  61 6d 65 20 68 65 69 67  | is at same heig|
00024bc0  68 74 20 61 73 20 77 68  65 6e 20 75 73 69 6e 67  |ht as when using|
00024bd0  20 73 79 73 74 65 6d 20  66 6f 6e 74 0a 09 20 09  | system font.. .|
00024be0  20 09 33 31 09 52 69 67  68 74 2d 6a 75 73 74 69  | .31.Right-justi|
00024bf0  66 79 20 0a 09 52 31 20  3d 09 50 6f 69 6e 74 65  |fy ..R1 =.Pointe|
00024c00  72 20 74 6f 20 73 74 72  69 6e 67 0a 09 52 32 20  |r to string..R2 |
00024c10  3d 09 2d 31 20 28 3f 29  0a 09 52 33 20 3d 09 2d  |=.-1 (?)..R3 =.-|
00024c20  31 20 28 3f 29 0a 09 52  34 20 3d 09 58 20 63 6f  |1 (?)..R4 =.X co|
00024c30  6f 72 64 69 6e 61 74 65  0a 09 52 35 20 3d 09 59  |ordinate..R5 =.Y|
00024c40  20 63 6f 6f 72 64 69 6e  61 74 65 0a 0a 50 6c 6f  | coordinate..Plo|
00024c50  74 73 20 61 20 73 74 72  69 6e 67 20 69 6e 20 74  |ts a string in t|
00024c60  68 65 20 63 75 72 72 65  6e 74 20 64 65 73 6b 74  |he current deskt|
00024c70  6f 70 20 66 6f 6e 74 2e  20 50 72 69 6f 72 20 74  |op font. Prior t|
00024c80  6f 20 70 6c 6f 74 74 69  6e 67 2c 20 74 68 65 20  |o plotting, the |
00024c90  66 6f 6e 74 20 63 6f 6c  6f 75 72 73 20 61 72 65  |font colours are|
00024ca0  20 73 65 74 20 28 77 69  74 68 20 3c 57 69 6d 70  | set (with <Wimp|
00024cb0  5f 53 65 74 43 6f 6c 6f  75 72 3e 29 2e 00 00 00  |_SetColour>)....|
00024cc0  44 41 54 41 a7 04 00 00  57 69 6d 70 5f 44 72 61  |DATA....Wimp_Dra|
00024cd0  67 42 6f 78 20 20 28 26  34 30 30 44 30 29 0a 23  |gBox  (&400D0).#|
00024ce0  50 61 72 65 6e 74 20 57  69 6d 70 5f 0a 3d 3e 09  |Parent Wimp_.=>.|
00024cf0  52 31 20 3d 09 70 6f 69  6e 74 65 72 20 74 6f 20  |R1 =.pointer to |
00024d00  3c 62 6c 6f 63 6b 3d 3e  2e 62 6c 6f 63 6b 3e 2c  |<block=>.block>,|
00024d10  20 6f 72 20 2d 31 20 74  6f 20 63 61 6e 63 65 6c  | or -1 to cancel|
00024d20  20 64 72 61 67 0a 3c 3d  09 52 30 20 63 6f 72 72  | drag.<=.R0 corr|
00024d30  75 70 74 0a 0a 54 68 69  73 20 53 57 49 20 69 6e  |upt..This SWI in|
00024d40  69 74 69 61 74 65 73 20  61 20 64 72 61 67 2e 20  |itiates a drag. |
00024d50  41 20 64 72 61 67 20 63  61 6e 20 73 70 61 6e 20  |A drag can span |
00024d60  73 65 76 65 72 61 6c 20  63 61 6c 6c 73 20 74 6f  |several calls to|
00024d70  20 3c 57 69 6d 70 5f 50  6f 6c 6c 3e 2c 20 73 6f  | <Wimp_Poll>, so|
00024d80  20 74 68 65 20 74 61 73  6b 20 6d 75 73 74 20 72  | the task must r|
00024d90  65 6d 65 6d 62 65 72 20  77 68 61 74 20 69 73 20  |emember what is |
00024da0  62 65 69 6e 67 20 64 72  61 67 67 65 64 20 61 6e  |being dragged an|
00024db0  64 20 77 68 79 2e 0a 0a  54 65 72 6d 69 6e 61 74  |d why...Terminat|
00024dc0  65 64 20 64 72 61 67 20  69 73 20 72 65 70 6f 72  |ed drag is repor|
00024dd0  74 65 64 20 62 79 20 3c  57 69 6d 70 20 6d 65 73  |ted by <Wimp mes|
00024de0  73 61 67 65 20 37 3d 3e  57 69 6d 70 5f 50 6f 6c  |sage 7=>Wimp_Pol|
00024df0  6c 37 3e 2e 0a 23 0a 23  53 75 62 70 61 67 65 20  |l7>..#.#Subpage |
00024e00  62 6c 6f 63 6b 0a 42 6c  6f 63 6b 20 64 65 73 63  |block.Block desc|
00024e10  72 69 62 69 6e 67 20 64  72 61 67 0a 20 30 09 57  |ribing drag. 0.W|
00024e20  69 6e 64 6f 77 20 68 61  6e 64 6c 65 20 28 66 6f  |indow handle (fo|
00024e30  72 20 64 72 61 67 74 79  70 65 73 20 31 2d 34 20  |r dragtypes 1-4 |
00024e40  6f 6e 6c 79 29 0a 20 34  09 3c 44 72 61 67 74 79  |only). 4.<Dragty|
00024e50  70 65 3d 3e 2e 64 72 61  67 74 79 70 65 3e 0a 20  |pe=>.dragtype>. |
00024e60  38 09 4d 69 6e 20 78 20  6f 66 20 69 6e 69 74 69  |8.Min x of initi|
00024e70  61 6c 20 64 72 61 67 62  6f 78 0a 20 31 32 09 4d  |al dragbox. 12.M|
00024e80  69 6e 20 79 0a 20 31 36  09 4d 61 78 20 78 0a 20  |in y. 16.Max x. |
00024e90  32 30 09 4d 61 78 20 79  0a 0a 46 6f 72 20 74 79  |20.Max y..For ty|
00024ea0  70 65 73 20 35 2d 31 31  20 6f 6e 6c 79 20 3a 0a  |pes 5-11 only :.|
00024eb0  0a 20 32 34 09 4d 69 6e  20 78 20 6f 66 20 70 61  |. 24.Min x of pa|
00024ec0  72 65 6e 74 62 6f 78 0a  20 32 38 09 4d 69 6e 20  |rentbox. 28.Min |
00024ed0  79 0a 20 33 32 09 4d 61  78 20 78 0a 20 33 36 09  |y. 32.Max x. 36.|
00024ee0  4d 61 78 20 79 0a 0a 46  6f 72 20 74 79 70 65 73  |Max y..For types|
00024ef0  20 38 2d 31 31 20 6f 6e  6c 79 20 3a 0a 0a 20 34  | 8-11 only :.. 4|
00024f00  30 09 52 31 32 20 76 61  6c 75 65 20 66 6f 72 20  |0.R12 value for |
00024f10  75 73 65 72 72 6f 75 74  69 6e 65 73 0a 20 34 34  |userroutines. 44|
00024f20  09 41 64 64 72 65 73 73  20 6f 66 20 64 72 61 77  |.Address of draw|
00024f30  62 6f 78 20 72 6f 75 74  69 6e 65 0a 20 34 38 09  |box routine. 48.|
00024f40  41 64 64 72 65 73 73 20  6f 66 20 72 65 6d 6f 76  |Address of remov|
00024f50  65 62 6f 78 20 72 6f 75  74 69 6e 65 0a 20 35 32  |ebox routine. 52|
00024f60  09 41 64 64 72 65 73 73  20 6f 66 20 6d 6f 76 65  |.Address of move|
00024f70  62 6f 78 20 72 6f 75 74  69 6e 65 20 28 6f 72 20  |box routine (or |
00024f80  5c 3c 30 20 69 66 20 6e  6f 6e 65 20 2d 20 6d 6f  |\<0 if none - mo|
00024f90  76 65 20 69 73 20 72 65  6d 6f 76 65 20 66 6f 6c  |ve is remove fol|
00024fa0  6c 6f 77 65 64 20 62 79  20 64 72 61 77 29 0a 23  |lowed by draw).#|
00024fb0  0a 23 53 75 62 70 61 67  65 20 64 72 61 67 74 79  |.#Subpage dragty|
00024fc0  70 65 0a 44 72 61 67 74  79 70 65 73 0a 20 31 09  |pe.Dragtypes. 1.|
00024fd0  44 72 61 67 20 77 69 6e  64 6f 77 20 70 6f 73 69  |Drag window posi|
00024fe0  74 69 6f 6e 0a 20 32 09  44 72 61 67 20 77 69 6e  |tion. 2.Drag win|
00024ff0  64 6f 77 20 73 69 7a 65  0a 20 33 09 44 72 61 67  |dow size. 3.Drag|
00025000  20 68 6f 72 69 7a 6f 6e  74 61 6c 20 73 63 72 6f  | horizontal scro|
00025010  6c 6c 0a 20 34 09 44 72  61 67 20 76 65 72 74 69  |ll. 4.Drag verti|
00025020  63 61 6c 20 73 63 72 6f  6c 6c 0a 20 35 09 44 72  |cal scroll. 5.Dr|
00025030  61 67 20 66 69 78 65 64  20 73 69 7a 65 20 62 6f  |ag fixed size bo|
00025040  78 0a 20 36 09 44 72 61  67 20 72 75 62 62 65 72  |x. 6.Drag rubber|
00025050  62 6f 78 0a 20 37 09 44  72 61 67 20 70 6f 69 6e  |box. 7.Drag poin|
00025060  74 0a 20 38 09 44 72 61  67 20 66 69 78 65 64 20  |t. 8.Drag fixed |
00025070  73 69 7a 65 20 75 73 65  72 62 6f 78 0a 20 39 09  |size userbox. 9.|
00025080  44 72 61 67 20 72 75 62  62 65 72 20 75 73 65 72  |Drag rubber user|
00025090  62 6f 78 0a 20 31 30 09  41 73 20 38 2c 20 62 75  |box. 10.As 8, bu|
000250a0  74 20 64 6f 6e 27 74 20  63 61 6e 63 65 6c 20 77  |t don't cancel w|
000250b0  68 65 6e 20 62 75 74 74  6f 6e 73 20 61 72 65 20  |hen buttons are |
000250c0  72 65 6c 65 61 73 65 64  0a 20 31 31 09 41 73 20  |released. 11.As |
000250d0  39 2c 20 62 75 74 20 64  6f 6e 27 74 20 63 61 6e  |9, but don't can|
000250e0  63 65 6c 20 77 68 65 6e  20 62 75 74 74 6f 6e 73  |cel when buttons|
000250f0  20 61 72 65 20 72 65 6c  65 61 73 65 64 0a 20 31  | are released. 1|
00025100  32 09 44 72 61 67 20 68  6f 72 69 7a 6f 6e 74 61  |2.Drag horizonta|
00025110  6c 20 61 6e 64 20 76 65  72 74 69 63 61 6c 20 73  |l and vertical s|
00025120  63 72 6f 6c 6c 62 61 72  73 0a 0a 44 72 61 67 74  |crollbars..Dragt|
00025130  79 70 65 20 31 20 69 73  20 75 73 65 66 75 6c 20  |ype 1 is useful |
00025140  66 6f 72 20 64 72 61 67  67 69 6e 67 20 77 69 6e  |for dragging win|
00025150  64 6f 77 73 20 77 69 74  68 20 6e 6f 20 74 69 74  |dows with no tit|
00025160  6c 65 62 61 72 2e 0a 00  44 49 52 24 d4 01 00 00  |lebar...DIR$....|
00025170  d4 01 00 00 3c 53 02 00  47 ff ff ff 69 64 bf cd  |....<S..G...id..|
00025180  0e 01 00 00 13 00 00 00  00 00 00 00 43 61 72 65  |............Care|
00025190  74 50 6f 73 69 74 69 6f  6e 00 00 00 4c 54 02 00  |tPosition...LT..|
000251a0  47 ff ff ff 4b 67 bf cd  43 01 00 00 13 00 00 00  |G...Kg..C.......|
000251b0  00 00 00 00 49 63 6f 6e  53 74 61 74 65 00 00 00  |....IconState...|
000251c0  90 55 02 00 48 ff ff ff  cd 1c d3 08 9c 02 00 00  |.U..H...........|
000251d0  13 00 00 00 00 00 00 00  4d 65 6e 75 53 74 61 74  |........MenuStat|
000251e0  65 00 00 00 2c 58 02 00  48 ff ff ff a6 97 50 27  |e...,X..H.....P'|
000251f0  06 02 00 00 13 00 00 00  00 00 00 00 50 6f 69 6e  |............Poin|
00025200  74 65 72 49 6e 66 6f 00  34 5a 02 00 45 fd ff ff  |terInfo.4Z..E...|
00025210  0a 21 f3 ff 87 00 00 00  13 00 00 00 00 00 00 00  |.!..............|
00025220  70 6f 69 6e 74 65 72 69  6e 66 6f 30 00 00 00 00  |pointerinfo0....|
00025230  bc 5a 02 00 45 fd ff ff  43 1c f3 ff 63 01 00 00  |.Z..E...C...c...|
00025240  13 00 00 00 00 00 00 00  70 6f 69 6e 74 65 72 69  |........pointeri|
00025250  6e 66 6f 31 00 00 00 00  20 5c 02 00 48 ff ff ff  |nfo1.... \..H...|
00025260  fb 0a 84 1a aa 03 00 00  13 00 00 00 00 00 00 00  |................|
00025270  57 69 6e 64 6f 77 49 6e  66 6f 00 00 cc 5f 02 00  |WindowInfo..._..|
00025280  48 ff ff ff 4f f7 85 1a  ab 01 00 00 13 00 00 00  |H...O...........|
00025290  00 00 00 00 57 69 6e 64  6f 77 4f 75 74 6c 69 6e  |....WindowOutlin|
000252a0  65 00 00 00 78 61 02 00  46 fd ff ff 7f 77 fa 2a  |e...xa..F....w.*|
000252b0  79 00 00 00 13 00 00 00  00 00 00 00 77 69 6e 64  |y...........wind|
000252c0  6f 77 6f 75 74 6c 69 6e  65 30 00 00 f4 61 02 00  |owoutline0...a..|
000252d0  48 ff ff ff c0 6c 71 2a  6e 03 00 00 13 00 00 00  |H....lq*n.......|
000252e0  00 00 00 00 57 69 6e 64  6f 77 53 74 61 74 65 00  |....WindowState.|
000252f0  64 65 02 00 48 ff ff ff  45 7f 4f 27 fd 01 00 00  |de..H...E.O'....|
00025300  13 00 00 00 00 00 00 00  52 65 63 74 61 6e 67 6c  |........Rectangl|
00025310  65 00 00 00 64 67 02 00  48 fd ff ff a4 95 5b 21  |e...dg..H.....[!|
00025320  17 01 00 00 13 00 00 00  00 00 00 00 72 65 63 74  |............rect|
00025330  61 6e 67 6c 65 5f 62 6c  6f 63 6b 00 44 41 54 41  |angle_block.DATA|
00025340  0e 01 00 00 57 69 6d 70  5f 47 65 74 43 61 72 65  |....Wimp_GetCare|
00025350  74 50 6f 73 69 74 69 6f  6e 20 20 28 26 34 30 30  |tPosition  (&400|
00025360  44 33 29 0a 23 50 61 72  65 6e 74 20 57 69 6d 70  |D3).#Parent Wimp|
00025370  5f 0a 3d 3e 09 52 31 20  3d 09 70 6f 69 6e 74 65  |_.=>.R1 =.pointe|
00025380  72 20 74 6f 20 62 6c 6f  63 6b 0a 0a 3c 3d 09 52  |r to block..<=.R|
00025390  30 20 63 6f 72 72 75 70  74 0a 09 62 6c 6f 63 6b  |0 corrupt..block|
000253a0  20 63 6f 6e 74 61 69 6e  73 20 3a 0a 09 20 20 30  | contains :..  0|
000253b0  09 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 20 28  |.window handle (|
000253c0  2d 31 20 69 66 20 6f 66  66 29 0a 09 20 20 34 09  |-1 if off)..  4.|
000253d0  69 63 6f 6e 20 68 61 6e  64 6c 65 2c 20 6f 72 20  |icon handle, or |
000253e0  2d 31 0a 09 20 20 38 09  78 20 6f 66 66 73 65 74  |-1..  8.x offset|
000253f0  0a 09 20 20 31 32 09 79  20 6f 66 66 73 65 74 0a  |..  12.y offset.|
00025400  09 20 20 31 36 09 3c 68  65 69 67 68 74 20 2b 20  |.  16.<height + |
00025410  66 6c 61 67 73 3d 3e 77  69 6d 70 5f 63 61 72 65  |flags=>wimp_care|
00025420  74 68 66 3e 2c 20 6f 72  20 2d 31 0a 09 20 20 32  |thf>, or -1..  2|
00025430  30 09 69 6e 64 65 78 20  69 6e 74 6f 20 73 74 72  |0.index into str|
00025440  69 6e 67 2c 20 6f 72 20  2d 31 00 00 44 41 54 41  |ing, or -1..DATA|
00025450  43 01 00 00 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |C...Wimp_GetIcon|
00025460  53 74 61 74 65 20 20 28  26 34 30 30 43 45 29 0a  |State  (&400CE).|
00025470  23 50 61 72 65 6e 74 20  57 69 6d 70 5f 0a 23 57  |#Parent Wimp_.#W|
00025480  72 61 70 20 4f 66 66 0a  3d 3e 09 52 31 20 3d 09  |rap Off.=>.R1 =.|
00025490  70 6f 69 6e 74 65 72 20  74 6f 20 62 6c 6f 63 6b  |pointer to block|
000254a0  20 3a 0a 09 20 09 20 20  30 20 20 57 69 6e 64 6f  | :.. .  0  Windo|
000254b0  77 20 68 61 6e 64 6c 65  0a 09 20 09 20 20 34 20  |w handle.. .  4 |
000254c0  20 49 63 6f 6e 20 68 61  6e 64 6c 65 0a 0a 3c 3d  | Icon handle..<=|
000254d0  09 52 30 20 63 6f 72 72  75 70 74 0a 09 4f 6e 20  |.R0 corrupt..On |
000254e0  65 78 69 74 20 74 68 65  20 62 6c 6f 63 6b 20 77  |exit the block w|
000254f0  69 6c 6c 20 61 6c 73 6f  20 63 6f 6e 74 61 69 6e  |ill also contain|
00025500  20 3a 0a 09 20 20 38 20  20 33 32 2d 62 79 74 65  | :..  8  32-byte|
00025510  20 3c 69 63 6f 6e 20 62  6c 6f 63 6b 3d 3e 77 69  | <icon block=>wi|
00025520  6d 70 5f 69 63 6f 6e 62  6c 6f 63 6b 3e 2e 0a 23  |mp_iconblock>..#|
00025530  57 72 61 70 20 4f 6e 0a  0a 49 66 20 79 6f 75 20  |Wrap On..If you |
00025540  77 61 6e 74 20 74 6f 20  73 65 61 72 63 68 20 66  |want to search f|
00025550  6f 72 20 61 6e 20 69 63  6f 6e 20 77 69 74 68 20  |or an icon with |
00025560  70 61 72 74 69 63 75 6c  61 72 20 66 6c 61 67 20  |particular flag |
00025570  73 65 74 74 69 6e 67 73  2c 20 75 73 65 20 3c 57  |settings, use <W|
00025580  69 6d 70 5f 57 68 69 63  68 49 63 6f 6e 3e 2e 00  |imp_WhichIcon>..|
00025590  44 41 54 41 9c 02 00 00  57 69 6d 70 5f 47 65 74  |DATA....Wimp_Get|
000255a0  4d 65 6e 75 53 74 61 74  65 20 20 28 26 34 30 30  |MenuState  (&400|
000255b0  46 34 29 0a 23 50 61 72  65 6e 74 20 57 69 6d 70  |F4).#Parent Wimp|
000255c0  5f 0a 23 57 72 61 70 20  4f 66 66 0a 3d 3e 09 52  |_.#Wrap Off.=>.R|
000255d0  30 20 3d 09 30 09 74 6f  20 72 65 74 75 72 6e 20  |0 =.0.to return |
000255e0  74 68 65 20 63 75 72 72  65 6e 74 20 6d 65 6e 75  |the current menu|
000255f0  20 74 72 65 65 20 73 74  61 74 65 0a 09 20 09 31  | tree state.. .1|
00025600  09 72 65 70 6f 72 74 20  74 72 65 65 20 6c 65 61  |.report tree lea|
00025610  64 69 6e 67 20 75 70 20  74 6f 2c 20 62 75 74 20  |ding up to, but |
00025620  6e 6f 74 20 69 6e 63 6c  75 64 69 6e 67 2c 20 61  |not including, a|
00025630  20 77 69 6e 64 6f 77 2f  69 63 6f 6e 20 70 61 69  | window/icon pai|
00025640  72 0a 09 52 31 20 3d 09  62 75 66 66 65 72 20 66  |r..R1 =.buffer f|
00025650  6f 72 20 72 65 73 75 6c  74 2e 0a 09 52 32 20 3d  |or result...R2 =|
00025660  09 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 20 6f  |.window handle o|
00025670  66 20 6d 65 6e 75 2c 20  69 66 20 52 30 20 3d 20  |f menu, if R0 = |
00025680  31 0a 09 52 33 20 3d 09  69 63 6f 6e 20 68 61 6e  |1..R3 =.icon han|
00025690  64 6c 65 20 6f 66 20 65  6e 74 72 79 20 69 6e 20  |dle of entry in |
000256a0  6d 65 6e 75 2c 20 69 66  20 52 30 20 3d 20 31 0a  |menu, if R0 = 1.|
000256b0  0a 3c 3d 09 52 30 20 3d  09 63 6f 72 72 75 70 74  |.<=.R0 =.corrupt|
000256c0  65 64 0a 09 52 31 20 3d  09 66 69 6c 6c 65 64 20  |ed..R1 =.filled |
000256d0  62 75 66 66 65 72 0a 23  57 72 61 70 0a 0a 49 66  |buffer.#Wrap..If|
000256e0  20 74 68 65 72 65 20 61  72 65 20 6e 6f 20 65 72  | there are no er|
000256f0  72 6f 72 73 20 74 68 65  20 62 75 66 66 65 72 20  |rors the buffer |
00025700  69 73 20 66 69 6c 6c 65  64 20 77 69 74 68 20 61  |is filled with a|
00025710  20 6c 69 73 74 20 6f 66  20 6e 75 6d 62 65 72 73  | list of numbers|
00025720  20 69 6e 2c 20 73 61 6d  65 20 61 73 20 74 68 65  | in, same as the|
00025730  20 6f 6e 65 20 79 6f 75  20 67 65 74 20 61 66 74  | one you get aft|
00025740  65 72 20 61 20 3c 6d 65  6e 75 20 73 65 6c 65 63  |er a <menu selec|
00025750  74 69 6f 6e 3d 3e 77 69  6d 70 5f 70 6f 6c 6c 39  |tion=>wimp_poll9|
00025760  3e 2e 0a 0a 54 68 69 73  20 6c 69 73 74 20 72 65  |>...This list re|
00025770  74 75 72 6e 65 64 20 77  69 6c 6c 20 62 65 20 6e  |turned will be n|
00025780  75 6c 6c 2c 20 69 65 2e  20 62 75 66 66 65 72 2b  |ull, ie. buffer+|
00025790  30 20 3d 20 2d 31 2c 20  69 66 3b 0a 0a 20 69 66  |0 = -1, if;.. if|
000257a0  20 52 30 20 3d 20 31 20  61 6e 64 20 74 68 65 20  | R0 = 1 and the |
000257b0  57 69 6e 64 6f 77 2f 69  63 6f 6e 20 69 6e 20 52  |Window/icon in R|
000257c0  32 2f 52 33 20 69 73 20  6e 6f 74 20 69 6e 20 74  |2/R3 is not in t|
000257d0  68 65 20 74 72 65 65 2c  20 6f 72 0a 20 69 66 20  |he tree, or. if |
000257e0  52 30 20 3d 20 30 20 61  6e 64 20 74 68 65 20 6d  |R0 = 0 and the m|
000257f0  65 6e 75 20 69 73 20 6f  77 6e 65 64 20 62 79 20  |enu is owned by |
00025800  61 20 64 69 66 66 65 72  65 6e 74 20 61 70 70 6c  |a different appl|
00025810  69 63 61 74 69 6f 6e 2c  20 6f 72 20 68 61 73 20  |ication, or has |
00025820  62 65 65 6e 20 63 6c 6f  73 65 64 0a 44 41 54 41  |been closed.DATA|
00025830  06 02 00 00 57 69 6d 70  5f 47 65 74 50 6f 69 6e  |....Wimp_GetPoin|
00025840  74 65 72 49 6e 66 6f 20  20 28 26 34 30 30 43 46  |terInfo  (&400CF|
00025850  29 0a 23 50 61 72 65 6e  74 20 57 69 6d 70 5f 0a  |).#Parent Wimp_.|
00025860  3d 3e 09 52 31 20 3d 09  70 6f 69 6e 74 65 72 20  |=>.R1 =.pointer |
00025870  74 6f 20 62 6c 6f 63 6b  0a 3c 3d 09 52 30 20 63  |to block.<=.R0 c|
00025880  6f 72 72 75 70 74 65 64  0a 09 42 6c 6f 63 6b 20  |orrupted..Block |
00025890  63 6f 6e 74 61 69 6e 73  20 3a 0a 09 20 20 30 09  |contains :..  0.|
000258a0  4d 6f 75 73 65 20 78 0a  09 20 20 34 09 4d 6f 75  |Mouse x..  4.Mou|
000258b0  73 65 20 79 0a 09 20 20  38 09 3c 42 75 74 74 6f  |se y..  8.<Butto|
000258c0  6e 20 73 74 61 74 65 3d  3e 77 69 6d 70 5f 67 65  |n state=>wimp_ge|
000258d0  74 70 6f 69 6e 74 65 72  69 6e 66 6f 30 3e 0a 09  |tpointerinfo0>..|
000258e0  20 20 31 32 09 57 69 6e  64 6f 77 20 68 61 6e 64  |  12.Window hand|
000258f0  6c 65 20 28 2d 31 20 66  6f 72 20 62 61 63 6b 67  |le (-1 for backg|
00025900  72 2c 20 2d 32 20 66 6f  72 20 69 63 6f 6e 62 61  |r, -2 for iconba|
00025910  72 29 0a 09 20 20 31 36  09 3c 49 63 6f 6e 20 68  |r)..  16.<Icon h|
00025920  61 6e 64 6c 65 3d 3e 77  69 6d 70 5f 67 65 74 70  |andle=>wimp_getp|
00025930  6f 69 6e 74 65 72 69 6e  66 6f 31 3e 0a 09 20 20  |ointerinfo1>..  |
00025940  0a 54 68 69 73 20 77 6f  75 6c 64 20 61 70 70 65  |.This would appe|
00025950  61 72 20 74 6f 20 72 65  74 75 72 6e 20 6e 6f 74  |ar to return not|
00025960  20 74 68 65 20 63 75 72  72 65 6e 74 20 6d 6f 75  | the current mou|
00025970  73 65 20 73 74 61 74 65  20 62 75 74 20 69 74 73  |se state but its|
00025980  20 73 74 61 74 65 20 77  68 65 6e 20 74 68 65 20  | state when the |
00025990  6c 61 73 74 20 3c 57 69  6d 70 5f 50 6f 6c 6c 3e  |last <Wimp_Poll>|
000259a0  20 77 61 73 20 65 78 65  63 75 74 65 64 2e 20 54  | was executed. T|
000259b0  68 69 73 20 6d 65 61 6e  73 20 74 68 61 74 20 69  |his means that i|
000259c0  74 20 69 73 20 70 65 72  66 65 63 74 6c 79 20 73  |t is perfectly s|
000259d0  61 66 65 20 74 6f 20 75  73 65 20 69 74 20 61 66  |afe to use it af|
000259e0  74 65 72 20 61 20 6c 6f  6e 67 20 6d 65 6e 75 20  |ter a long menu |
000259f0  63 6c 69 63 6b 20 64 65  6c 61 79 20 74 6f 20 72  |click delay to r|
00025a00  65 63 72 65 61 74 65 20  74 68 65 20 6d 65 6e 75  |ecreate the menu|
00025a10  20 6f 72 20 61 73 20 61  20 6d 65 61 6e 73 20 6f  | or as a means o|
00025a20  66 20 64 72 61 67 67 69  6e 67 20 62 6f 78 65 73  |f dragging boxes|
00025a30  2e 0a 00 00 44 41 54 41  87 00 00 00 42 75 74 74  |....DATA....Butt|
00025a40  6f 6e 20 73 74 61 74 65  0a 42 69 74 09 4d 65 61  |on state.Bit.Mea|
00025a50  6e 69 6e 67 20 77 68 65  6e 20 73 65 74 0a 23 4c  |ning when set.#L|
00025a60  69 6e 65 0a 30 09 52 69  67 68 74 20 62 75 74 74  |ine.0.Right butt|
00025a70  6f 6e 20 70 72 65 73 73  65 64 0a 31 09 4d 69 64  |on pressed.1.Mid|
00025a80  64 6c 65 20 62 75 74 74  6f 6e 20 70 72 65 73 73  |dle button press|
00025a90  65 64 0a 32 09 4c 65 66  74 20 62 75 74 74 6f 6e  |ed.2.Left button|
00025aa0  20 70 72 65 73 73 65 64  0a 0a 33 2d 33 31 20 61  | pressed..3-31 a|
00025ab0  72 65 20 72 65 73 65 72  76 65 64 00 44 41 54 41  |re reserved.DATA|
00025ac0  63 01 00 00 49 63 6f 6e  20 68 61 6e 64 6c 65 0a  |c...Icon handle.|
00025ad0  49 66 20 70 6f 73 69 74  69 76 65 2c 20 74 68 65  |If positive, the|
00025ae0  6e 20 69 74 20 72 65 61  6c 6c 79 20 69 73 20 61  |n it really is a|
00025af0  6e 20 69 63 6f 6e 20 68  61 6e 64 6c 65 2e 0a 49  |n icon handle..I|
00025b00  66 20 6e 65 67 61 74 69  76 65 2c 20 69 74 20 6d  |f negative, it m|
00025b10  65 61 6e 73 20 3a 0a 20  2d 31 09 57 6f 72 6b 20  |eans :. -1.Work |
00025b20  61 72 65 61 0a 20 2d 32  09 42 61 63 6b 20 69 63  |area. -2.Back ic|
00025b30  6f 6e 0a 20 2d 33 09 43  6c 6f 73 65 20 69 63 6f  |on. -3.Close ico|
00025b40  6e 0a 20 2d 34 09 54 69  74 6c 65 20 62 61 72 0a  |n. -4.Title bar.|
00025b50  20 2d 35 09 54 6f 67 67  6c 65 20 73 69 7a 65 20  | -5.Toggle size |
00025b60  69 63 6f 6e 0a 20 2d 36  09 53 63 72 6f 6c 6c 20  |icon. -6.Scroll |
00025b70  75 70 20 61 72 72 6f 77  0a 20 2d 37 09 56 65 72  |up arrow. -7.Ver|
00025b80  74 69 63 61 6c 20 73 63  72 6f 6c 6c 62 61 72 0a  |tical scrollbar.|
00025b90  20 2d 38 09 53 63 72 6f  6c 6c 20 64 6f 77 6e 20  | -8.Scroll down |
00025ba0  61 72 72 6f 77 0a 20 2d  39 09 41 64 6a 75 73 74  |arrow. -9.Adjust|
00025bb0  20 73 69 7a 65 20 69 63  6f 6e 0a 20 2d 31 30 09  | size icon. -10.|
00025bc0  53 63 72 6f 6c 6c 20 6c  65 66 74 20 61 72 72 6f  |Scroll left arro|
00025bd0  77 0a 20 2d 31 31 09 48  6f 72 69 7a 6f 6e 74 61  |w. -11.Horizonta|
00025be0  6c 20 73 63 72 6f 6c 6c  62 61 72 0a 20 2d 31 32  |l scrollbar. -12|
00025bf0  09 53 63 72 6f 6c 6c 20  72 69 67 68 74 20 61 72  |.Scroll right ar|
00025c00  72 6f 77 0a 20 2d 31 33  09 54 68 65 20 6f 75 74  |row. -13.The out|
00025c10  65 72 20 77 69 6e 64 6f  77 20 66 72 61 6d 65 00  |er window frame.|
00025c20  44 41 54 41 aa 03 00 00  57 69 6d 70 5f 47 65 74  |DATA....Wimp_Get|
00025c30  57 69 6e 64 6f 77 49 6e  66 6f 20 20 28 26 34 30  |WindowInfo  (&40|
00025c40  30 43 43 29 0a 23 50 61  72 65 6e 74 20 57 69 6d  |0CC).#Parent Wim|
00025c50  70 5f 0a 3d 3e 09 52 31  20 3d 09 70 6f 69 6e 74  |p_.=>.R1 =.point|
00025c60  65 72 20 74 6f 20 62 6c  6f 63 6b 20 63 6f 6e 74  |er to block cont|
00025c70  61 69 6e 69 6e 67 20 77  69 6e 64 6f 77 20 68 61  |aining window ha|
00025c80  6e 64 6c 65 0a 3c 3d 09  62 6c 6f 63 6b 20 63 6f  |ndle.<=.block co|
00025c90  6e 74 61 69 6e 73 0a 09  20 20 30 09 57 69 6e 64  |ntains..  0.Wind|
00025ca0  6f 77 20 68 61 6e 64 6c  65 0a 09 20 20 34 2e 2e  |ow handle..  4..|
00025cb0  09 3c 57 69 6e 64 6f 77  20 62 6c 6f 63 6b 3d 3e  |.<Window block=>|
00025cc0  77 69 6d 70 5f 77 69 6e  64 6f 77 62 6c 6f 63 6b  |wimp_windowblock|
00025cd0  3e 0a 0a 54 68 69 73 20  53 57 49 20 72 65 74 75  |>..This SWI retu|
00025ce0  72 6e 73 20 63 6f 6d 70  6c 65 74 65 20 64 65 74  |rns complete det|
00025cf0  61 69 6c 73 20 6f 66 20  74 68 65 20 67 69 76 65  |ails of the give|
00025d00  6e 20 77 69 6e 64 6f 77  73 20 73 74 61 74 65 2c  |n windows state,|
00025d10  20 69 6e 63 6c 75 64 69  6e 67 20 61 6e 79 20 69  | including any i|
00025d20  63 6f 6e 73 20 63 72 65  61 74 65 64 20 61 66 74  |cons created aft|
00025d30  65 72 20 74 68 65 20 77  69 6e 64 6f 77 20 69 74  |er the window it|
00025d40  73 65 6c 66 2e 20 49 66  20 62 69 74 20 30 20 6f  |self. If bit 0 o|
00025d50  66 20 52 31 20 69 73 20  73 65 74 2c 20 74 68 65  |f R1 is set, the|
00025d60  6e 20 74 68 65 20 69 63  6f 6e 73 20 61 72 65 20  |n the icons are |
00025d70  2a 6e 6f 74 2a 20 72 65  74 75 72 6e 65 64 2e 0a  |*not* returned..|
00025d80  0a 55 6e 64 65 72 20 74  68 65 20 6e 65 73 74 65  |.Under the neste|
00025d90  64 20 77 69 6e 64 6f 77  20 6d 61 6e 61 67 65 72  |d window manager|
00025da0  2c 20 74 68 65 20 66 6f  72 6d 20 69 73 20 73 6c  |, the form is sl|
00025db0  69 67 68 74 6c 79 20 3c  64 69 66 66 65 72 65 6e  |ightly <differen|
00025dc0  74 3d 3e 2e 6e 65 73 74  65 64 3e 2e 0a 23 53 75  |t=>.nested>..#Su|
00025dd0  62 70 61 67 65 20 6e 65  73 74 65 64 0a 57 69 6d  |bpage nested.Wim|
00025de0  70 5f 47 65 74 57 69 6e  64 6f 77 49 6e 66 6f 20  |p_GetWindowInfo |
00025df0  28 6e 65 73 74 65 64 20  76 65 72 73 69 6f 6e 29  |(nested version)|
00025e00  0a 3d 3e 09 52 31 20 3d  09 70 6f 69 6e 74 65 72  |.=>.R1 =.pointer|
00025e10  20 74 6f 20 62 6c 6f 63  6b 20 63 6f 6e 74 61 69  | to block contai|
00025e20  6e 69 6e 67 20 77 69 6e  64 6f 77 20 68 61 6e 64  |ning window hand|
00025e30  6c 65 0a 3c 3d 09 62 6c  6f 63 6b 20 69 6e 20 52  |le.<=.block in R|
00025e40  31 20 63 6f 6e 74 61 69  6e 73 20 3a 0a 09 20 20  |1 contains :..  |
00025e50  30 09 57 69 6e 64 6f 77  20 68 61 6e 64 6c 65 0a  |0.Window handle.|
00025e60  09 20 20 34 2e 2e 09 3c  57 69 6e 64 6f 77 20 62  |.  4...<Window b|
00025e70  6c 6f 63 6b 3d 3e 77 69  6d 70 5f 77 69 6e 64 6f  |lock=>wimp_windo|
00025e80  77 62 6c 6f 63 6b 3e 0a  09 52 32 20 3d 09 22 54  |wblock>..R2 =."T|
00025e90  41 53 4b 22 20 28 26 34  42 35 33 34 31 35 34 29  |ASK" (&4B534154)|
00025ea0  0a 09 52 33 20 3d 09 77  69 6e 64 6f 77 20 68 61  |..R3 =.window ha|
00025eb0  6e 64 6c 65 20 6f 66 20  70 61 72 65 6e 74 2c 20  |ndle of parent, |
00025ec0  6f 72 20 2d 31 20 66 6f  72 20 74 68 65 20 74 6f  |or -1 for the to|
00025ed0  70 2d 6c 65 76 65 6c 0a  09 52 34 20 3d 09 3c 6e  |p-level..R4 =.<n|
00025ee0  65 73 74 69 6e 67 20 66  6c 61 67 73 3d 3e 2e 66  |esting flags=>.f|
00025ef0  6c 61 67 73 3e 0a 09 0a  54 68 69 73 20 63 61 6c  |lags>...This cal|
00025f00  6c 20 72 65 61 64 73 20  69 6e 66 6f 72 6d 61 74  |l reads informat|
00025f10  69 6f 6e 20 61 62 6f 75  74 20 74 68 65 20 77 69  |ion about the wi|
00025f20  6e 64 6f 77 20 69 6e 20  74 68 65 20 73 61 6d 65  |ndow in the same|
00025f30  20 77 61 79 20 61 73 20  74 68 65 20 6f 72 69 67  | way as the orig|
00025f40  69 6e 61 6c 2c 20 62 75  74 20 61 6c 73 6f 20 72  |inal, but also r|
00025f50  65 74 75 72 6e 73 20 74  68 65 20 6e 65 73 74 69  |eturns the nesti|
00025f60  6e 67 20 69 6e 66 6f 72  6d 61 74 69 6f 6e 20 75  |ng information u|
00025f70  73 65 64 20 69 6e 20 3c  57 69 6d 70 5f 4f 70 65  |sed in <Wimp_Ope|
00025f80  6e 57 69 6e 64 6f 77 3e  2e 20 4f 6e 6c 79 20 70  |nWindow>. Only p|
00025f90  72 65 73 65 6e 74 20 6f  6e 20 76 65 72 73 69 6f  |resent on versio|
00025fa0  6e 73 20 6f 66 20 74 68  65 20 57 69 6e 64 6f 77  |ns of the Window|
00025fb0  20 4d 61 6e 61 67 65 72  20 6c 61 74 65 72 20 74  | Manager later t|
00025fc0  68 61 6e 20 33 2e 38 30  2e 0a 00 00 44 41 54 41  |han 3.80....DATA|
00025fd0  ab 01 00 00 57 69 6d 70  5f 47 65 74 57 69 6e 64  |....Wimp_GetWind|
00025fe0  6f 77 4f 75 74 6c 69 6e  65 20 20 28 26 34 30 30  |owOutline  (&400|
00025ff0  45 30 29 0a 23 50 61 72  65 6e 74 20 57 69 6d 70  |E0).#Parent Wimp|
00026000  5f 0a 3d 3e 09 52 31 20  3d 20 62 6c 6f 63 6b 20  |_.=>.R1 = block |
00026010  63 6f 6e 74 61 69 6e 69  6e 67 20 77 69 6e 64 6f  |containing windo|
00026020  77 20 68 61 6e 64 6c 65  0a 3c 3d 09 52 30 20 63  |w handle.<=.R0 c|
00026030  6f 72 72 75 70 74 0a 09  42 6c 6f 63 6b 20 61 74  |orrupt..Block at|
00026040  20 52 31 20 3c 75 70 64  61 74 65 64 3d 3e 77 69  | R1 <updated=>wi|
00026050  6d 70 5f 67 65 74 77 69  6e 64 6f 77 6f 75 74 6c  |mp_getwindowoutl|
00026060  69 6e 65 30 3e 0a 0a 54  68 69 73 20 53 57 49 20  |ine0>..This SWI |
00026070  72 65 74 75 72 6e 73 20  74 68 65 20 63 6f 6f 72  |returns the coor|
00026080  64 69 6e 61 74 65 73 20  6f 66 20 61 20 72 65 63  |dinates of a rec|
00026090  74 61 6e 67 6c 65 20 77  68 69 63 68 20 63 6f 6d  |tangle which com|
000260a0  70 6c 65 74 65 6c 79 20  63 6f 76 65 72 73 20 74  |pletely covers t|
000260b0  68 65 20 77 69 6e 64 6f  77 2c 20 62 6f 72 64 65  |he window, borde|
000260c0  72 73 20 61 6e 64 20 61  6c 6c 2e 0a 0a 55 6e 64  |rs and all...Und|
000260d0  65 72 20 74 68 65 20 6e  65 73 74 65 64 20 57 69  |er the nested Wi|
000260e0  6d 70 2c 20 74 68 69 73  20 63 61 6c 6c 20 77 69  |mp, this call wi|
000260f0  6c 6c 20 6e 6f 77 20 77  6f 72 6b 20 69 66 20 74  |ll now work if t|
00026100  68 65 20 77 69 6e 64 6f  77 20 68 61 73 20 6e 6f  |he window has no|
00026110  74 20 62 65 65 6e 20 6f  70 65 6e 65 64 2e 20 53  |t been opened. S|
00026120  65 65 20 3c 57 69 6d 70  5f 46 6f 72 63 65 52 65  |ee <Wimp_ForceRe|
00026130  64 72 61 77 3e 20 66 6f  72 20 64 65 74 61 69 6c  |draw> for detail|
00026140  73 20 6f 66 20 68 6f 77  20 74 6f 20 72 65 64 72  |s of how to redr|
00026150  61 77 20 74 68 65 20 74  69 74 6c 65 62 61 72 20  |aw the titlebar |
00026160  75 6e 64 65 72 20 74 68  65 20 6e 65 73 74 65 64  |under the nested|
00026170  20 57 69 6d 70 2e 0a 00  44 41 54 41 79 00 00 00  | Wimp...DATAy...|
00026180  42 6c 6f 63 6b 20 3a 0a  23 57 72 61 70 20 4f 66  |Block :.#Wrap Of|
00026190  66 0a 30 09 57 69 6e 64  6f 77 20 68 61 6e 64 6c  |f.0.Window handl|
000261a0  65 0a 34 09 42 6f 75 6e  64 69 6e 67 20 62 6f 78  |e.4.Bounding box|
000261b0  09 6d 69 6e 78 20 28 69  6e 63 6c 29 0a 38 09 20  |.minx (incl).8. |
000261c0  09 09 6d 69 6e 79 20 28  69 6e 63 6c 29 0a 31 32  |..miny (incl).12|
000261d0  09 20 09 09 6d 61 78 78  20 28 65 78 63 6c 29 0a  |. ..maxx (excl).|
000261e0  31 36 09 20 09 09 6d 61  78 79 20 28 65 78 63 6c  |16. ..maxy (excl|
000261f0  29 00 00 00 44 41 54 41  6e 03 00 00 57 69 6d 70  |)...DATAn...Wimp|
00026200  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 20  |_GetWindowState |
00026210  20 28 26 34 30 30 43 42  29 0a 23 50 61 72 65 6e  | (&400CB).#Paren|
00026220  74 20 57 69 6d 70 5f 0a  3d 3e 09 52 31 20 3d 09  |t Wimp_.=>.R1 =.|
00026230  70 6f 69 6e 74 65 72 20  74 6f 20 62 6c 6f 63 6b  |pointer to block|
00026240  20 77 68 69 63 68 20 63  6f 6e 74 61 69 6e 73 20  | which contains |
00026250  77 69 6e 64 6f 77 20 68  61 6e 64 6c 65 2e 0a 0a  |window handle...|
00026260  3c 3d 09 42 6c 6f 63 6b  20 69 6e 20 52 31 20 63  |<=.Block in R1 c|
00026270  6f 6e 74 61 69 6e 73 20  3a 0a 09 20 20 30 09 57  |ontains :..  0.W|
00026280  69 6e 64 6f 77 20 48 61  6e 64 6c 65 20 28 6f 72  |indow Handle (or|
00026290  20 2d 32 20 66 6f 72 20  69 63 6f 6e 20 62 61 72  | -2 for icon bar|
000262a0  29 0a 09 20 20 34 09 56  69 73 69 62 6c 65 20 61  |)..  4.Visible a|
000262b0  72 65 61 20 6d 69 6e 69  6d 75 6d 20 78 0a 09 20  |rea minimum x.. |
000262c0  20 38 09 56 69 73 69 62  6c 65 20 61 72 65 61 20  | 8.Visible area |
000262d0  6d 69 6e 69 6d 75 6d 20  79 0a 09 20 20 31 32 09  |minimum y..  12.|
000262e0  56 69 73 69 62 6c 65 20  61 72 65 61 20 6d 61 78  |Visible area max|
000262f0  69 6d 75 6d 20 78 0a 09  20 20 31 36 09 56 69 73  |imum x..  16.Vis|
00026300  69 62 6c 65 20 61 72 65  61 20 6d 61 78 69 6d 75  |ible area maximu|
00026310  6d 20 79 0a 09 20 20 32  30 09 53 63 72 6f 6c 6c  |m y..  20.Scroll|
00026320  20 78 20 6f 66 66 73 65  74 0a 09 20 20 32 34 09  | x offset..  24.|
00026330  53 63 72 6f 6c 6c 20 79  20 6f 66 66 73 65 74 0a  |Scroll y offset.|
00026340  09 20 20 32 38 09 48 61  6e 64 6c 65 20 74 6f 20  |.  28.Handle to |
00026350  6f 70 65 6e 20 77 69 6e  64 6f 77 20 62 65 68 69  |open window behi|
00026360  6e 64 20 28 2d 31 3d 74  6f 70 2c 2d 32 3d 62 6f  |nd (-1=top,-2=bo|
00026370  74 74 6f 6d 29 0a 09 20  20 33 32 09 3c 57 69 6e  |ttom)..  32.<Win|
00026380  64 6f 77 20 66 6c 61 67  73 3d 3e 77 69 6d 70 5f  |dow flags=>wimp_|
00026390  77 69 6e 64 6f 77 66 6c  61 67 73 3e 0a 0a 54 68  |windowflags>..Th|
000263a0  69 73 20 63 61 6c 6c 20  72 65 61 64 73 20 61 20  |is call reads a |
000263b0  77 69 6e 64 6f 77 73 20  76 69 73 69 62 6c 65 20  |windows visible |
000263c0  73 74 61 74 65 2e 20 54  68 65 20 3c 6e 65 73 74  |state. The <nest|
000263d0  65 64 20 76 65 72 73 69  6f 6e 3d 3e 2e 6e 65 73  |ed version=>.nes|
000263e0  74 65 64 3e 20 63 61 6e  20 62 65 20 75 73 65 64  |ted> can be used|
000263f0  20 74 6f 20 72 65 61 64  20 74 68 65 20 77 69 6e  | to read the win|
00026400  64 6f 77 73 20 70 61 72  65 6e 74 2e 0a 23 73 75  |dows parent..#su|
00026410  62 70 61 67 65 20 6e 65  73 74 65 64 0a 57 69 6d  |bpage nested.Wim|
00026420  70 5f 47 65 74 57 69 6e  64 6f 77 53 74 61 74 65  |p_GetWindowState|
00026430  20 28 6e 65 73 74 65 64  20 76 65 72 73 69 6f 6e  | (nested version|
00026440  29 0a 3d 3e 09 52 31 20  3d 09 70 6f 69 6e 74 65  |).=>.R1 =.pointe|
00026450  72 20 74 6f 20 62 6c 6f  63 6b 20 63 6f 6e 74 61  |r to block conta|
00026460  69 6e 69 6e 67 20 77 69  6e 64 6f 77 20 68 61 6e  |ining window han|
00026470  64 6c 65 0a 09 52 32 20  3d 09 22 54 41 53 4b 22  |dle..R2 =."TASK"|
00026480  20 28 26 34 42 35 33 34  31 35 34 29 0a 3c 3d 09  | (&4B534154).<=.|
00026490  52 33 20 3d 09 70 61 72  65 6e 74 20 77 69 6e 64  |R3 =.parent wind|
000264a0  6f 77 20 68 61 6e 64 6c  65 2c 20 6f 72 20 2d 31  |ow handle, or -1|
000264b0  20 69 66 20 74 6f 70 20  6c 65 76 65 6c 0a 09 52  | if top level..R|
000264c0  34 20 3d 09 3c 6e 65 73  74 69 6e 67 20 66 6c 61  |4 =.<nesting fla|
000264d0  67 73 3d 3e 57 69 6d 70  5f 6e 65 73 74 69 6e 67  |gs=>Wimp_nesting|
000264e0  66 6c 61 67 73 3e 0a 0a  54 68 69 73 20 76 65 72  |flags>..This ver|
000264f0  73 69 6f 6e 20 6f 66 20  74 68 65 20 63 61 6c 6c  |sion of the call|
00026500  20 72 65 74 75 72 6e 73  20 6e 6f 74 20 6f 6e 6c  | returns not onl|
00026510  79 20 74 68 65 20 75 70  64 61 74 65 64 20 62 6c  |y the updated bl|
00026520  6f 63 6b 20 62 75 74 20  69 6e 66 6f 72 6d 61 74  |ock but informat|
00026530  69 6f 6e 20 61 62 6f 75  74 20 74 68 65 20 77 69  |ion about the wi|
00026540  6e 64 6f 77 20 77 69 74  68 69 6e 20 77 68 69 63  |ndow within whic|
00026550  68 20 69 74 20 69 73 20  65 6d 62 65 64 64 65 64  |h it is embedded|
00026560  2e 0a 00 00 44 41 54 41  fd 01 00 00 57 69 6d 70  |....DATA....Wimp|
00026570  5f 47 65 74 52 65 63 74  61 6e 67 6c 65 20 20 28  |_GetRectangle  (|
00026580  26 34 30 30 43 41 29 0a  23 50 61 72 65 6e 74 20  |&400CA).#Parent |
00026590  57 69 6d 70 5f 0a 3d 3e  09 52 31 20 3d 09 70 6f  |Wimp_.=>.R1 =.po|
000265a0  69 6e 74 65 72 20 74 6f  20 62 6c 6f 63 6b 20 63  |inter to block c|
000265b0  6f 6e 74 61 69 6e 69 6e  67 20 77 69 6e 64 6f 77  |ontaining window|
000265c0  20 68 61 6e 64 6c 65 0a  3c 3d 09 52 30 20 3d 09  | handle.<=.R0 =.|
000265d0  30 20 69 66 20 6e 6f 20  6d 6f 72 65 0a 09 42 6c  |0 if no more..Bl|
000265e0  6f 63 6b 20 61 74 20 52  31 20 69 73 20 3c 75 70  |ock at R1 is <up|
000265f0  64 61 74 65 64 3d 3e 2e  62 6c 6f 63 6b 3e 0a 0a  |dated=>.block>..|
00026600  54 68 69 73 20 53 57 49  20 72 65 74 75 72 6e 73  |This SWI returns|
00026610  20 69 6e 66 6f 20 66 6f  72 20 74 68 65 20 6e 65  | info for the ne|
00026620  78 74 20 72 65 63 74 61  6e 67 6c 65 20 74 6f 20  |xt rectangle to |
00026630  62 65 20 72 65 64 72 61  77 6e 2e 20 54 68 65 20  |be redrawn. The |
00026640  67 72 61 70 68 69 63 73  20 77 69 6e 64 6f 77 20  |graphics window |
00026650  69 73 20 73 65 74 20 74  6f 20 63 6c 69 70 20 74  |is set to clip t|
00026660  6f 20 74 68 65 20 72 65  63 74 61 6e 67 6c 65 2e  |o the rectangle.|
00026670  0a 23 0a 23 53 75 62 70  61 67 65 20 62 6c 6f 63  |.#.#Subpage bloc|
00026680  6b 0a 52 65 63 74 61 6e  67 6c 65 20 74 6f 20 62  |k.Rectangle to b|
00026690  65 20 72 65 64 72 61 77  6e 0a 30 09 57 69 6e 64  |e redrawn.0.Wind|
000266a0  6f 77 20 68 61 6e 64 6c  65 0a 34 09 56 69 73 69  |ow handle.4.Visi|
000266b0  62 6c 65 20 61 72 65 61  09 6d 69 6e 78 20 28 69  |ble area.minx (i|
000266c0  6e 63 6c 29 0a 38 09 20  09 09 6d 69 6e 79 20 28  |ncl).8. ..miny (|
000266d0  69 6e 63 6c 29 0a 31 32  09 20 09 09 6d 61 78 78  |incl).12. ..maxx|
000266e0  20 28 65 78 63 6c 29 0a  31 36 09 20 09 09 6d 61  | (excl).16. ..ma|
000266f0  78 79 20 28 65 78 63 6c  29 0a 32 30 09 53 63 72  |xy (excl).20.Scr|
00026700  6f 6c 6c 78 0a 32 34 09  53 63 72 6f 6c 6c 79 0a  |ollx.24.Scrolly.|
00026710  32 38 09 52 65 64 72 61  77 20 72 65 63 74 09 6d  |28.Redraw rect.m|
00026720  69 6e 78 20 28 69 6e 63  6c 29 0a 33 32 09 20 09  |inx (incl).32. .|
00026730  09 6d 69 6e 79 20 28 69  6e 63 6c 29 0a 33 36 09  |.miny (incl).36.|
00026740  20 09 09 6d 61 78 78 20  28 65 78 63 6c 29 0a 34  | ..maxx (excl).4|
00026750  30 09 20 09 09 6d 61 78  79 20 28 65 78 63 6c 29  |0. ..maxy (excl)|
00026760  0a 00 00 00 44 41 54 41  17 01 00 00 52 65 63 74  |....DATA....Rect|
00026770  61 6e 67 6c 65 20 74 6f  20 62 65 20 72 65 64 72  |angle to be redr|
00026780  61 77 6e 0a 23 50 61 72  65 6e 74 20 57 69 6d 70  |awn.#Parent Wimp|
00026790  5f 47 65 74 52 65 63 74  61 6e 67 6c 65 0a 4f 66  |_GetRectangle.Of|
000267a0  66 73 65 74 09 43 6f 6e  74 65 6e 74 73 0a 23 4c  |fset.Contents.#L|
000267b0  69 6e 65 0a 30 09 57 69  6e 64 6f 77 20 68 61 6e  |ine.0.Window han|
000267c0  64 6c 65 0a 34 09 56 69  73 69 62 6c 65 20 61 72  |dle.4.Visible ar|
000267d0  65 61 09 6d 69 6e 78 20  28 69 6e 63 6c 29 0a 38  |ea.minx (incl).8|
000267e0  09 20 09 09 6d 69 6e 79  20 28 69 6e 63 6c 29 0a  |. ..miny (incl).|
000267f0  31 32 09 20 09 09 6d 61  78 78 20 28 65 78 63 6c  |12. ..maxx (excl|
00026800  29 0a 31 36 09 20 09 09  6d 61 78 79 20 28 65 78  |).16. ..maxy (ex|
00026810  63 6c 29 0a 32 30 09 53  63 72 6f 6c 6c 78 0a 32  |cl).20.Scrollx.2|
00026820  34 09 53 63 72 6f 6c 6c  79 0a 32 38 09 52 65 64  |4.Scrolly.28.Red|
00026830  72 61 77 20 72 65 63 74  09 6d 69 6e 78 20 28 69  |raw rect.minx (i|
00026840  6e 63 6c 29 0a 33 32 09  20 09 09 6d 69 6e 79 20  |ncl).32. ..miny |
00026850  28 69 6e 63 6c 29 0a 33  36 09 20 09 09 6d 61 78  |(incl).36. ..max|
00026860  78 20 28 65 78 63 6c 29  0a 34 30 09 20 09 09 6d  |x (excl).40. ..m|
00026870  61 78 79 20 28 65 78 63  6c 29 0a 00 44 49 52 24  |axy (excl)..DIR$|
00026880  74 01 00 00 74 01 00 00  f0 69 02 00 47 ff ff ff  |t...t....i..G...|
00026890  5f 79 bf cd d5 01 00 00  13 00 00 00 00 00 00 00  |_y..............|
000268a0  43 61 72 65 74 50 6f 73  69 74 69 6f 6e 00 00 00  |CaretPosition...|
000268b0  c8 6b 02 00 47 ff ff ff  51 6e 75 13 a5 00 00 00  |.k..G...Qnu.....|
000268c0  13 00 00 00 00 00 00 00  43 6f 6c 6f 75 72 00 00  |........Colour..|
000268d0  70 6c 02 00 48 ff ff ff  e5 aa 51 27 93 01 00 00  |pl..H.....Q'....|
000268e0  13 00 00 00 00 00 00 00  45 78 74 65 6e 74 00 00  |........Extent..|
000268f0  04 6e 02 00 48 ff ff ff  a4 81 54 27 05 01 00 00  |.n..H.....T'....|
00026900  13 00 00 00 00 00 00 00  46 6f 6e 74 43 6f 6c 6f  |........FontColo|
00026910  75 72 73 00 0c 6f 02 00  47 ff ff ff bf 81 bf cd  |urs..o..G.......|
00026920  c3 01 00 00 13 00 00 00  00 00 00 00 49 63 6f 6e  |............Icon|
00026930  53 74 61 74 65 00 00 00  d0 70 02 00 48 ff ff ff  |State....p..H...|
00026940  71 a8 75 19 22 01 00 00  13 00 00 00 00 00 00 00  |q.u."...........|
00026950  4d 6f 64 65 00 00 00 00  f4 71 02 00 48 ff ff ff  |Mode.....q..H...|
00026960  48 87 5d 24 50 01 00 00  13 00 00 00 00 00 00 00  |H.]$P...........|
00026970  50 6f 69 6e 74 65 72 53  68 61 70 65 00 00 00 00  |PointerShape....|
00026980  44 73 02 00 48 ff ff ff  e0 d1 52 27 7d 01 00 00  |Ds..H.....R'}...|
00026990  13 00 00 00 00 00 00 00  50 61 6c 65 74 74 65 00  |........Palette.|
000269a0  c4 74 02 00 47 ff ff ff  93 a4 28 0c d5 00 00 00  |.t..G.....(.....|
000269b0  13 00 00 00 00 00 00 00  57 61 74 63 68 64 6f 67  |........Watchdog|
000269c0  53 74 61 74 65 00 00 00  9c 75 02 00 47 ff ff ff  |State....u..G...|
000269d0  6f f8 9a e9 7f 02 00 00  13 00 00 00 00 00 00 00  |o...............|
000269e0  43 6f 6c 6f 75 72 4d 61  70 70 69 6e 67 00 00 00  |ColourMapping...|
000269f0  44 41 54 41 d5 01 00 00  57 69 6d 70 5f 53 65 74  |DATA....Wimp_Set|
00026a00  43 61 72 65 74 50 6f 73  69 74 69 6f 6e 20 20 28  |CaretPosition  (|
00026a10  26 34 30 30 44 32 29 0a  23 50 61 72 65 6e 74 20  |&400D2).#Parent |
00026a20  57 69 6d 70 5f 0a 3d 3e  09 52 30 20 3d 09 77 69  |Wimp_.=>.R0 =.wi|
00026a30  6e 64 6f 77 20 68 61 6e  64 6c 65 20 28 2d 31 20  |ndow handle (-1 |
00026a40  74 6f 20 74 75 72 6e 20  6f 66 66 29 0a 09 52 31  |to turn off)..R1|
00026a50  20 3d 09 69 63 6f 6e 20  68 61 6e 64 6c 65 2c 20  | =.icon handle, |
00026a60  6f 72 20 2d 31 20 66 6f  72 20 77 69 6e 64 6f 77  |or -1 for window|
00026a70  20 61 72 65 61 0a 09 52  32 20 3d 09 78 20 6f 66  | area..R2 =.x of|
00026a80  66 73 65 74 0a 09 52 33  20 3d 09 79 20 6f 66 66  |fset..R3 =.y off|
00026a90  73 65 74 0a 09 52 34 20  3d 09 3c 68 65 69 67 68  |set..R4 =.<heigh|
00026aa0  74 20 2b 20 66 6c 61 67  73 3d 3e 77 69 6d 70 5f  |t + flags=>wimp_|
00026ab0  63 61 72 65 74 68 66 3e  2c 20 6f 72 20 2d 31 0a  |carethf>, or -1.|
00026ac0  09 52 35 20 3d 09 69 6e  64 65 78 20 69 6e 74 6f  |.R5 =.index into|
00026ad0  20 73 74 72 69 6e 67 2c  20 6f 72 20 2d 31 0a 0a  | string, or -1..|
00026ae0  54 68 69 73 20 53 57 49  20 6d 6f 76 65 73 20 63  |This SWI moves c|
00026af0  61 72 65 74 20 74 6f 20  61 20 6e 65 77 20 70 6f  |aret to a new po|
00026b00  73 69 74 69 6f 6e 2e 0a  49 66 20 74 68 65 20 63  |sition..If the c|
00026b10  61 72 65 74 20 69 73 20  6d 6f 76 65 64 20 74 6f  |aret is moved to|
00026b20  20 61 20 6e 65 77 20 77  69 6e 64 6f 77 2c 20 61  | a new window, a|
00026b30  20 3c 4c 6f 73 65 43 61  72 65 74 3d 3e 57 69 6d  | <LoseCaret=>Wim|
00026b40  70 5f 50 6f 6c 6c 31 31  3e 20 6d 65 73 73 61 67  |p_Poll11> messag|
00026b50  65 20 69 73 20 73 65 6e  74 20 74 6f 20 74 68 65  |e is sent to the|
00026b60  20 6f 77 6e 65 72 20 6f  66 20 74 68 65 20 6f 6c  | owner of the ol|
00026b70  64 20 77 69 6e 64 6f 77  2c 20 61 6e 64 20 61 20  |d window, and a |
00026b80  3c 47 61 69 6e 43 61 72  65 74 3d 3e 57 69 6d 70  |<GainCaret=>Wimp|
00026b90  5f 50 6f 6c 6c 31 32 3e  20 6d 65 73 73 61 67 65  |_Poll12> message|
00026ba0  20 69 73 20 73 65 6e 74  20 74 6f 20 74 68 65 20  | is sent to the |
00026bb0  6f 77 6e 65 72 20 6f 66  20 74 68 65 20 6e 65 77  |owner of the new|
00026bc0  20 6f 6e 65 2e 00 00 00  44 41 54 41 a5 00 00 00  | one....DATA....|
00026bd0  57 69 6d 70 5f 53 65 74  43 6f 6c 6f 75 72 20 20  |Wimp_SetColour  |
00026be0  28 26 34 30 30 45 36 29  0a 23 50 61 72 65 6e 74  |(&400E6).#Parent|
00026bf0  20 57 69 6d 70 5f 0a 3d  3e 09 52 30 20 3a 09 62  | Wimp_.=>.R0 :.b|
00026c00  69 74 73 09 30 2d 33 20  57 69 6d 70 20 63 6f 6c  |its.0-3 Wimp col|
00026c10  6f 75 72 0a 09 20 09 62  69 74 73 09 34 2d 36 20  |our.. .bits.4-6 |
00026c20  47 43 4f 4c 20 61 63 74  69 6f 6e 0a 09 20 09 62  |GCOL action.. .b|
00026c30  69 74 09 37 09 30 20 66  6f 72 20 66 6f 72 65 67  |it.7.0 for foreg|
00026c40  72 6f 75 6e 64 2c 0a 09  20 09 20 09 20 09 31 20  |round,.. . . .1 |
00026c50  66 6f 72 20 62 61 63 6b  67 72 6f 75 6e 64 0a 3c  |for background.<|
00026c60  3d 09 52 30 20 63 6f 72  72 75 70 74 0a 00 00 00  |=.R0 corrupt....|
00026c70  44 41 54 41 93 01 00 00  57 69 6d 70 5f 53 65 74  |DATA....Wimp_Set|
00026c80  45 78 74 65 6e 74 20 20  28 26 34 30 30 44 37 29  |Extent  (&400D7)|
00026c90  0a 23 50 61 72 65 6e 74  20 57 69 6d 70 5f 0a 3d  |.#Parent Wimp_.=|
00026ca0  3e 09 52 30 20 3d 09 77  69 6e 64 6f 77 20 68 61  |>.R0 =.window ha|
00026cb0  6e 64 6c 65 0a 09 52 31  20 3d 09 70 6f 69 6e 74  |ndle..R1 =.point|
00026cc0  65 72 20 74 6f 20 62 6c  6f 63 6b 0a 09 20 09 2b  |er to block.. .+|
00026cd0  30 09 6e 65 77 20 77 6f  72 6b 61 72 65 61 20 6d  |0.new workarea m|
00026ce0  69 6e 20 78 0a 09 20 09  2b 34 09 6e 65 77 20 77  |in x.. .+4.new w|
00026cf0  6f 72 6b 61 72 65 61 20  6d 69 6e 20 79 0a 09 20  |orkarea min y.. |
00026d00  09 2b 38 09 6e 65 77 20  77 6f 72 6b 61 72 65 61  |.+8.new workarea|
00026d10  20 6d 61 78 20 78 0a 09  20 09 2b 31 32 09 6e 65  | max x.. .+12.ne|
00026d20  77 20 77 6f 72 6b 61 72  65 61 20 6d 61 78 20 79  |w workarea max y|
00026d30  0a 3c 3d 09 52 30 20 63  6f 72 72 75 70 74 0a 0a  |.<=.R0 corrupt..|
00026d40  56 69 73 69 62 6c 65 20  77 6f 72 6b 61 72 65 61  |Visible workarea|
00026d50  20 6d 75 73 74 20 62 65  20 77 68 6f 6c 6c 79 20  | must be wholly |
00026d60  77 69 74 68 69 6e 20 6e  65 77 20 77 6f 72 6b 61  |within new worka|
00026d70  72 65 61 20 65 78 74 65  6e 74 2e 0a 0a 4f 6e 20  |rea extent...On |
00026d80  52 49 53 43 20 4f 53 20  32 20 77 6f 72 6b 61 72  |RISC OS 2 workar|
00026d90  65 61 20 65 78 74 65 6e  74 20 6d 75 73 74 20 63  |ea extent must c|
00026da0  6f 72 72 65 73 70 6f 6e  64 20 74 6f 20 61 20 77  |orrespond to a w|
00026db0  68 6f 6c 65 20 6e 75 6d  62 65 72 20 6f 66 20 70  |hole number of p|
00026dc0  69 78 65 6c 73 2c 20 6f  72 20 73 74 72 61 6e 67  |ixels, or strang|
00026dd0  65 20 65 66 66 65 63 74  73 20 6d 61 79 20 6f 63  |e effects may oc|
00026de0  63 75 72 2e 20 4c 61 74  65 72 20 57 69 6d 70 73  |cur. Later Wimps|
00026df0  20 72 6f 75 6e 64 20 74  68 65 20 76 61 6c 75 65  | round the value|
00026e00  73 2e 0a 00 44 41 54 41  05 01 00 00 57 69 6d 70  |s...DATA....Wimp|
00026e10  5f 53 65 74 46 6f 6e 74  43 6f 6c 6f 75 72 73 20  |_SetFontColours |
00026e20  20 28 26 34 30 30 46 33  29 0a 23 50 61 72 65 6e  | (&400F3).#Paren|
00026e30  74 20 57 69 6d 70 5f 0a  3d 3e 09 52 31 20 3d 09  |t Wimp_.=>.R1 =.|
00026e40  66 6f 6e 74 20 62 61 63  6b 67 72 6f 75 6e 64 20  |font background |
00026e50  63 6f 6c 6f 75 72 0a 09  52 32 20 3d 09 66 6f 6e  |colour..R2 =.fon|
00026e60  74 20 66 6f 72 65 67 72  6f 75 6e 64 20 63 6f 6c  |t foreground col|
00026e70  6f 75 72 0a 3c 3d 09 52  30 20 63 6f 72 72 75 70  |our.<=.R0 corrup|
00026e80  74 0a 0a 54 68 69 73 20  53 57 49 20 73 65 74 73  |t..This SWI sets|
00026e90  20 75 70 20 74 68 65 20  61 6e 74 69 2d 61 6c 69  | up the anti-ali|
00026ea0  61 73 65 64 20 66 6f 6e  74 20 63 6f 6c 6f 75 72  |ased font colour|
00026eb0  73 2c 20 66 72 6f 6d 20  74 68 65 20 74 77 6f 20  |s, from the two |
00026ec0  73 75 70 70 6c 69 65 64  20 77 69 6d 70 2d 63 6f  |supplied wimp-co|
00026ed0  6c 6f 75 72 73 2e 20 46  6f 6e 74 20 63 6f 6c 6f  |lours. Font colo|
00026ee0  75 72 73 20 61 72 65 20  6e 6f 74 20 70 72 65 73  |urs are not pres|
00026ef0  65 72 76 65 64 20 61 63  72 6f 73 73 20 57 69 6d  |erved across Wim|
00026f00  70 20 70 6f 6c 6c 73 2e  0a 00 00 00 44 41 54 41  |p polls.....DATA|
00026f10  c3 01 00 00 57 69 6d 70  5f 53 65 74 49 63 6f 6e  |....Wimp_SetIcon|
00026f20  53 74 61 74 65 20 20 28  26 34 30 30 43 44 29 0a  |State  (&400CD).|
00026f30  23 50 61 72 65 6e 74 20  57 69 6d 70 5f 0a 3d 3e  |#Parent Wimp_.=>|
00026f40  09 52 31 20 3d 09 70 6f  69 6e 74 65 72 20 74 6f  |.R1 =.pointer to|
00026f50  20 62 6c 6f 63 6b 20 3a  0a 09 20 09 20 20 30 09  | block :.. .  0.|
00026f60  57 69 6e 64 6f 77 20 68  61 6e 64 6c 65 20 28 2d  |Window handle (-|
00026f70  31 2c 2d 32 20 66 6f 72  20 69 63 6f 6e 62 61 72  |1,-2 for iconbar|
00026f80  29 0a 09 20 09 20 20 34  09 49 63 6f 6e 20 68 61  |).. .  4.Icon ha|
00026f90  6e 64 6c 65 0a 09 20 09  20 20 38 09 45 4f 52 20  |ndle.. .  8.EOR |
00026fa0  77 6f 72 64 0a 09 20 09  20 20 31 32 09 43 6c 65  |word.. .  12.Cle|
00026fb0  61 72 20 77 6f 72 64 0a  3c 3d 09 52 30 20 63 6f  |ar word.<=.R0 co|
00026fc0  72 72 75 70 74 0a 0a 54  68 69 73 20 53 57 49 20  |rrupt..This SWI |
00026fd0  73 65 74 73 20 74 68 65  20 69 63 6f 6e 27 73 20  |sets the icon's |
00026fe0  3c 66 6c 61 67 73 3d 3e  77 69 6d 70 5f 69 63 6f  |<flags=>wimp_ico|
00026ff0  6e 66 6c 61 67 73 3e 20  61 73 20 66 6f 6c 6c 6f  |nflags> as follo|
00027000  77 73 20 3a 0a 20 20 6e  65 77 20 3d 20 28 6f 6c  |ws :.  new = (ol|
00027010  64 20 42 49 43 20 63 6c  65 61 72 5f 77 6f 72 64  |d BIC clear_word|
00027020  29 20 45 4f 52 20 45 4f  52 5f 77 6f 72 64 0a 0a  |) EOR EOR_word..|
00027030  23 54 61 62 0a 20 43 09  45 09 45 66 66 65 63 74  |#Tab. C.E.Effect|
00027040  0a 23 4c 69 6e 65 0a 20  30 09 30 09 50 72 65 73  |.#Line. 0.0.Pres|
00027050  65 72 76 65 20 62 69 74  0a 20 30 09 31 09 54 6f  |erve bit. 0.1.To|
00027060  67 67 6c 65 20 62 69 74  0a 20 31 09 30 09 43 6c  |ggle bit. 1.0.Cl|
00027070  65 61 72 20 62 69 74 0a  20 31 09 31 09 53 65 74  |ear bit. 1.1.Set|
00027080  20 62 69 74 0a 0a 54 68  69 73 20 53 57 49 20 61  | bit..This SWI a|
00027090  6c 73 6f 20 63 61 75 73  65 73 20 74 68 65 20 69  |lso causes the i|
000270a0  63 6f 6e 20 74 6f 20 62  65 20 72 65 64 72 61 77  |con to be redraw|
000270b0  6e 2c 20 65 76 65 6e 20  69 66 20 6e 6f 20 62 69  |n, even if no bi|
000270c0  74 73 20 61 72 65 20 63  68 61 6e 67 65 64 2e 00  |ts are changed..|
000270d0  44 41 54 41 22 01 00 00  57 69 6d 70 5f 53 65 74  |DATA"...Wimp_Set|
000270e0  4d 6f 64 65 20 20 28 26  34 30 30 45 33 29 0a 23  |Mode  (&400E3).#|
000270f0  50 61 72 65 6e 74 20 57  69 6d 70 5f 0a 3d 3e 09  |Parent Wimp_.=>.|
00027100  52 30 20 3d 09 3c 4d 6f  64 65 20 6e 75 6d 62 65  |R0 =.<Mode numbe|
00027110  72 3d 3e 56 44 55 3a 32  32 61 3e 2c 20 6f 72 20  |r=>VDU:22a>, or |
00027120  70 6f 69 6e 74 65 72 20  74 6f 20 3c 4d 6f 64 65  |pointer to <Mode|
00027130  20 53 65 6c 65 63 74 6f  72 3d 3e 57 69 6d 70 5f  | Selector=>Wimp_|
00027140  4d 6f 64 65 53 65 6c 65  63 74 3e 0a 3c 3d 09 52  |ModeSelect>.<=.R|
00027150  30 20 63 6f 72 72 75 70  74 0a 09 53 63 72 65 65  |0 corrupt..Scree|
00027160  6e 20 75 70 64 61 74 65  64 0a 0a 54 68 69 73 20  |n updated..This |
00027170  53 57 49 20 63 68 61 6e  67 65 73 20 74 68 65 20  |SWI changes the |
00027180  64 69 73 70 6c 61 79 20  6d 6f 64 65 20 75 73 65  |display mode use|
00027190  64 20 62 79 20 57 69 6d  70 2e 20 50 61 6c 65 74  |d by Wimp. Palet|
000271a0  74 65 20 61 6e 64 20 6d  6f 75 73 65 2d 70 6f 69  |te and mouse-poi|
000271b0  6e 74 65 72 20 61 72 65  20 72 65 73 65 74 2e 20  |nter are reset. |
000271c0  53 63 72 65 65 6e 20 6d  65 6d 6f 72 79 20 69 73  |Screen memory is|
000271d0  20 72 65 61 6c 6c 6f 63  61 74 65 64 2c 20 61 6e  | reallocated, an|
000271e0  64 20 73 63 72 65 65 6e  20 72 65 62 75 69 6c 74  |d screen rebuilt|
000271f0  2e 0a 00 00 44 41 54 41  50 01 00 00 57 69 6d 70  |....DATAP...Wimp|
00027200  5f 53 65 74 50 6f 69 6e  74 65 72 53 68 61 70 65  |_SetPointerShape|
00027210  20 20 28 26 34 30 30 44  38 29 0a 23 50 61 72 65  |  (&400D8).#Pare|
00027220  6e 74 20 57 69 6d 70 5f  0a 3d 3e 09 52 30 20 3d  |nt Wimp_.=>.R0 =|
00027230  09 73 68 61 70 65 20 6e  75 6d 62 65 72 20 28 30  |.shape number (0|
00027240  20 74 6f 20 74 75 72 6e  20 6f 66 66 29 0a 09 52  | to turn off)..R|
00027250  31 20 3d 09 70 6f 69 6e  74 65 72 20 74 6f 20 73  |1 =.pointer to s|
00027260  68 61 70 65 2d 64 61 74  61 2c 20 6f 72 20 2d 31  |hape-data, or -1|
00027270  20 66 6f 72 20 6e 6f 20  63 68 61 6e 67 65 0a 09  | for no change..|
00027280  52 32 20 3d 09 77 69 64  74 68 20 69 6e 20 70 69  |R2 =.width in pi|
00027290  78 65 6c 73 20 28 6d 75  6c 74 69 70 6c 65 20 6f  |xels (multiple o|
000272a0  66 20 34 29 0a 09 52 33  20 3d 09 68 65 69 67 68  |f 4)..R3 =.heigh|
000272b0  74 20 69 6e 20 70 69 78  65 6c 73 0a 09 52 34 20  |t in pixels..R4 |
000272c0  3d 09 61 63 74 69 76 65  20 70 6f 69 6e 74 20 78  |=.active point x|
000272d0  20 6f 66 66 73 65 74 0a  09 52 35 20 3d 09 61 63  | offset..R5 =.ac|
000272e0  74 69 76 65 20 70 6f 69  6e 74 20 79 20 6f 66 66  |tive point y off|
000272f0  73 65 74 0a 3c 3d 09 52  30 20 63 6f 72 72 75 70  |set.<=.R0 corrup|
00027300  74 0a 0a 54 68 69 73 20  53 57 49 20 69 73 20 6f  |t..This SWI is o|
00027310  62 73 6f 6c 65 74 65 2e  20 4e 65 77 20 70 72 6f  |bsolete. New pro|
00027320  67 72 61 6d 73 20 73 68  6f 75 6c 64 20 75 73 65  |grams should use|
00027330  20 3c 57 69 6d 70 5f 53  70 72 69 74 65 4f 70 3e  | <Wimp_SpriteOp>|
00027340  2c 33 36 2e 44 41 54 41  7d 01 00 00 57 69 6d 70  |,36.DATA}...Wimp|
00027350  5f 53 65 74 50 61 6c 65  74 74 65 20 20 28 26 34  |_SetPalette  (&4|
00027360  30 30 45 34 29 0a 23 50  61 72 65 6e 74 20 57 69  |00E4).#Parent Wi|
00027370  6d 70 5f 0a 3d 3e 09 52  31 20 3d 09 70 6f 69 6e  |mp_.=>.R1 =.poin|
00027380  74 65 72 20 74 6f 20 32  30 2d 77 6f 72 64 20 3c  |ter to 20-word <|
00027390  70 61 6c 65 74 74 65 20  62 6c 6f 63 6b 3d 3e 57  |palette block=>W|
000273a0  69 6d 70 5f 70 61 6c 65  74 74 65 62 6c 6f 63 6b  |imp_paletteblock|
000273b0  3e 0a 3c 3d 09 52 30 20  63 6f 72 72 75 70 74 0a  |>.<=.R0 corrupt.|
000273c0  0a 54 68 69 73 20 53 57  49 20 72 65 70 72 6f 67  |.This SWI reprog|
000273d0  72 61 6d 73 20 74 68 65  20 57 69 6d 70 2d 70 61  |rams the Wimp-pa|
000273e0  6c 65 74 74 65 2e 20 49  6e 20 31 36 2d 63 6f 6c  |lette. In 16-col|
000273f0  6f 75 72 20 6d 6f 64 65  73 2c 20 74 68 65 20 76  |our modes, the v|
00027400  69 64 65 6f 2d 70 61 6c  65 74 74 65 20 69 73 20  |ideo-palette is |
00027410  61 6c 73 6f 20 72 65 70  72 6f 67 72 61 6d 6d 65  |also reprogramme|
00027420  64 2c 20 61 6e 64 20 69  6e 20 6f 74 68 65 72 20  |d, and in other |
00027430  6d 6f 64 65 73 20 74 68  65 20 57 69 6d 70 27 73  |modes the Wimp's|
00027440  20 63 6f 6c 6f 75 72 20  6c 6f 6f 6b 75 70 20 74  | colour lookup t|
00027450  61 62 6c 65 20 6d 61 79  20 63 68 61 6e 67 65 2e  |able may change.|
00027460  0a 59 6f 75 20 6d 75 73  74 20 66 6f 72 63 65 20  |.You must force |
00027470  61 20 72 65 64 72 61 77  20 6f 66 20 73 63 72 65  |a redraw of scre|
00027480  65 6e 2e 20 49 74 20 63  61 75 73 65 73 20 3c 53  |en. It causes <S|
00027490  65 72 76 69 63 65 5f 57  69 6d 70 50 61 6c 65 74  |ervice_WimpPalet|
000274a0  74 65 3d 3e 4f 53 3a 53  65 72 76 69 63 65 5f 35  |te=>OS:Service_5|
000274b0  44 3e 20 74 6f 20 62 65  20 69 73 73 75 65 64 2e  |D> to be issued.|
000274c0  0a 00 00 00 44 41 54 41  d5 00 00 00 57 69 6d 70  |....DATA....Wimp|
000274d0  5f 53 65 74 57 61 74 63  68 64 6f 67 53 74 61 74  |_SetWatchdogStat|
000274e0  65 20 20 28 26 34 30 30  46 41 29 20 28 33 2e 35  |e  (&400FA) (3.5|
000274f0  29 0a 23 50 61 72 65 6e  74 20 57 69 6d 70 5f 0a  |).#Parent Wimp_.|
00027500  3d 3e 09 52 30 20 3d 09  30 20 74 6f 20 74 75 72  |=>.R0 =.0 to tur|
00027510  6e 20 57 61 74 63 68 64  6f 67 20 6f 66 66 2c 20  |n Watchdog off, |
00027520  31 20 74 6f 20 74 75 72  6e 20 69 74 20 6f 6e 0a  |1 to turn it on.|
00027530  09 52 31 20 3d 09 63 6f  64 65 77 6f 72 64 20 28  |.R1 =.codeword (|
00027540  6d 75 73 74 20 62 65 20  74 68 65 20 73 61 6d 65  |must be the same|
00027550  20 66 6f 72 20 6f 66 66  20 61 73 20 66 6f 72 20  | for off as for |
00027560  6f 6e 29 0a 0a 53 77 69  74 63 68 65 73 20 57 61  |on)..Switches Wa|
00027570  74 63 68 64 6f 67 20 70  72 6f 74 65 63 74 69 6f  |tchdog protectio|
00027580  6e 20 28 41 6c 74 2d 42  72 65 61 6b 29 20 6f 6e  |n (Alt-Break) on|
00027590  20 61 6e 64 20 6f 66 66  2e 00 00 00 44 41 54 41  | and off....DATA|
000275a0  7f 02 00 00 57 69 6d 70  5f 53 65 74 43 6f 6c 6f  |....Wimp_SetColo|
000275b0  75 72 4d 61 70 70 69 6e  67 20 20 28 26 34 30 30  |urMapping  (&400|
000275c0  46 38 29 0a 23 50 61 72  65 6e 74 20 57 69 6d 70  |F8).#Parent Wimp|
000275d0  5f 0a 3d 3e 09 52 31 20  3d 09 70 6f 69 6e 74 65  |_.=>.R1 =.pointe|
000275e0  72 20 74 6f 20 70 61 6c  65 74 74 65 20 74 6f 20  |r to palette to |
000275f0  62 65 20 75 73 65 64 20  66 6f 72 20 63 6f 6e 76  |be used for conv|
00027600  65 72 74 69 6e 67 20 57  69 6d 70 20 63 6f 6c 6f  |erting Wimp colo|
00027610  75 72 73 20 74 6f 20 70  68 79 73 69 63 61 6c 20  |urs to physical |
00027620  63 6f 6c 6f 75 72 73 3b  20 6f 72 0a 09 20 09 2d  |colours; or.. .-|
00027630  31 09 74 6f 20 75 73 65  20 74 68 65 20 64 65 66  |1.to use the def|
00027640  61 75 6c 74 20 57 69 6d  70 20 70 61 6c 65 74 74  |ault Wimp palett|
00027650  65 0a 09 20 09 30 09 74  6f 20 75 73 65 20 74 68  |e.. .0.to use th|
00027660  65 20 70 61 6c 65 74 74  65 20 64 65 66 69 6e 65  |e palette define|
00027670  64 20 62 79 20 3c 57 69  6d 70 5f 53 65 74 50 61  |d by <Wimp_SetPa|
00027680  6c 65 74 74 65 3e 0a 09  52 32 20 3d 09 70 6f 69  |lette>..R2 =.poi|
00027690  6e 74 65 72 20 74 6f 20  32 2d 62 79 74 65 20 61  |nter to 2-byte a|
000276a0  72 72 61 79 20 66 6f 72  20 6d 61 70 70 69 6e 67  |rray for mapping|
000276b0  20 31 62 70 70 20 73 70  72 69 74 65 73 20 74 6f  | 1bpp sprites to|
000276c0  20 57 69 6d 70 20 63 6f  6c 6f 75 72 73 0a 09 52  | Wimp colours..R|
000276d0  33 20 3d 09 70 6f 69 6e  74 65 72 20 74 6f 20 34  |3 =.pointer to 4|
000276e0  2d 62 79 74 65 20 61 72  72 61 79 20 66 6f 72 20  |-byte array for |
000276f0  6d 61 70 70 69 6e 67 20  32 62 70 70 20 73 70 72  |mapping 2bpp spr|
00027700  69 74 65 73 20 74 6f 20  57 69 6d 70 20 63 6f 6c  |ites to Wimp col|
00027710  6f 75 72 73 0a 09 52 34  20 3d 09 70 6f 69 6e 74  |ours..R4 =.point|
00027720  65 72 20 74 6f 20 31 36  2d 62 79 74 65 20 61 72  |er to 16-byte ar|
00027730  72 61 79 20 66 6f 72 20  6d 61 70 70 69 6e 67 20  |ray for mapping |
00027740  34 62 70 70 20 73 70 72  69 74 65 73 20 74 6f 20  |4bpp sprites to |
00027750  57 69 6d 70 20 63 6f 6c  6f 75 72 73 0a 09 52 35  |Wimp colours..R5|
00027760  2c 20 52 36 2c 20 52 37  20 6d 75 73 74 20 62 65  |, R6, R7 must be|
00027770  20 30 0a 0a 54 68 69 73  20 63 61 6c 6c 20 69 73  | 0..This call is|
00027780  20 75 73 65 64 20 74 6f  20 63 68 61 6e 67 65 20  | used to change |
00027790  74 68 65 20 77 61 79 20  69 6e 20 77 68 69 63 68  |the way in which|
000277a0  20 74 68 65 20 57 69 6d  70 20 6d 61 70 73 20 69  | the Wimp maps i|
000277b0  74 73 20 6f 77 6e 20 63  6f 6c 6f 75 72 73 20 74  |ts own colours t|
000277c0  6f 20 70 68 79 73 69 63  61 6c 20 63 6f 6c 6f 75  |o physical colou|
000277d0  72 73 2e 0a 0a 54 68 65  20 70 61 6c 65 74 74 65  |rs...The palette|
000277e0  20 73 70 65 63 69 66 69  65 64 20 69 6e 20 52 31  | specified in R1|
000277f0  20 69 73 20 31 36 20 77  6f 72 64 73 20 6c 6f 6e  | is 16 words lon|
00027800  67 20 61 6e 64 20 69 6e  20 26 42 42 47 47 52 52  |g and in &BBGGRR|
00027810  78 78 20 66 6f 72 6d 61  74 2e 0a 00 44 49 52 24  |xx format...DIR$|
00027820  f4 01 00 00 f4 01 00 00  10 7a 02 00 48 ff ff ff  |.........z..H...|
00027830  b8 02 0b 28 02 04 00 00  13 00 00 00 00 00 00 00  |...(............|
00027840  21 52 6f 6f 74 00 00 00  14 7e 02 00 45 fd ff ff  |!Root....~..E...|
00027850  b8 87 f2 ff 0f 01 00 00  13 00 00 00 00 00 00 00  |................|
00027860  31 00 00 00 24 7f 02 00  45 fd ff ff 0a 81 f2 ff  |1...$...E.......|
00027870  f1 01 00 00 13 00 00 00  00 00 00 00 31 30 00 00  |............10..|
00027880  18 81 02 00 45 fd ff ff  d2 6e f2 ff 22 01 00 00  |....E....n.."...|
00027890  13 00 00 00 00 00 00 00  31 31 00 00 3c 82 02 00  |........11..<...|
000278a0  45 fd ff ff 55 69 f2 ff  6c 01 00 00 13 00 00 00  |E...Ui..l.......|
000278b0  00 00 00 00 31 32 00 00  a8 83 02 00 45 fd ff ff  |....12......E...|
000278c0  47 63 f2 ff f7 01 00 00  13 00 00 00 00 00 00 00  |Gc..............|
000278d0  32 00 00 00 a0 85 02 00  45 fd ff ff bb 5a f2 ff  |2.......E....Z..|
000278e0  15 01 00 00 13 00 00 00  00 00 00 00 33 00 00 00  |............3...|
000278f0  b8 86 02 00 45 fd ff ff  aa 57 f2 ff 64 01 00 00  |....E....W..d...|
00027900  13 00 00 00 00 00 00 00  34 00 00 00 1c 88 02 00  |........4.......|
00027910  45 fd ff ff 2d 52 f2 ff  3a 02 00 00 13 00 00 00  |E...-R..:.......|
00027920  00 00 00 00 35 00 00 00  58 8a 02 00 46 fd ff ff  |....5...X...F...|
00027930  ce c3 ba 56 ce 00 00 00  13 00 00 00 00 00 00 00  |...V............|
00027940  36 00 00 00 28 8b 02 00  45 fd ff ff e9 36 f2 ff  |6...(...E....6..|
00027950  38 01 00 00 13 00 00 00  00 00 00 00 37 00 00 00  |8...........7...|
00027960  60 8c 02 00 46 fd ff ff  f1 a9 0f 50 87 01 00 00  |`...F......P....|
00027970  13 00 00 00 00 00 00 00  38 00 00 00 e8 8d 02 00  |........8.......|
00027980  47 fd ff ff 6a b5 ad 9a  72 02 00 00 13 00 00 00  |G...j...r.......|
00027990  00 00 00 00 38 61 00 00  5c 90 02 00 45 fd ff ff  |....8a..\...E...|
000279a0  b0 1e f2 ff 8d 01 00 00  13 00 00 00 00 00 00 00  |................|
000279b0  39 00 00 00 ec 91 02 00  48 ff ff ff 1d 3e 5d 24  |9.......H....>]$|
000279c0  40 01 00 00 13 00 00 00  00 00 00 00 49 64 6c 65  |@...........Idle|
000279d0  00 00 00 00 2c 93 02 00  47 fd ff ff fb af be cd  |....,...G.......|
000279e0  4b 02 00 00 13 00 00 00  00 00 00 00 6d 61 73 6b  |K...........mask|
000279f0  00 00 00 00 78 95 02 00  48 fd ff ff 3e dd 2e 25  |....x...H...>..%|
00027a00  62 02 00 00 13 00 00 00  00 00 00 00 31 33 00 00  |b...........13..|
00027a10  44 41 54 41 02 04 00 00  57 69 6d 70 5f 50 6f 6c  |DATA....Wimp_Pol|
00027a20  6c 20 20 28 26 34 30 30  43 37 29 0a 23 50 61 72  |l  (&400C7).#Par|
00027a30  65 6e 74 20 57 69 6d 70  5f 0a 3d 3e 09 52 30 20  |ent Wimp_.=>.R0 |
00027a40  3d 09 3c 6d 61 73 6b 3d  3e 57 69 6d 70 5f 50 6f  |=.<mask=>Wimp_Po|
00027a50  6c 6c 6d 61 73 6b 3e 09  09 5c 3c 3d 09 52 30 20  |llmask>..\<=.R0 |
00027a60  3d 20 72 65 61 73 6f 6e  20 63 6f 64 65 0a 09 52  |= reason code..R|
00027a70  31 20 3d 09 70 6f 69 6e  74 65 72 20 74 6f 20 32  |1 =.pointer to 2|
00027a80  35 36 20 62 79 74 65 20  62 6c 6f 63 6b 09 20 09  |56 byte block. .|
00027a90  52 31 20 3d 20 70 6f 69  6e 74 65 72 20 74 6f 20  |R1 = pointer to |
00027aa0  62 6c 6f 63 6b 20 6f 66  20 64 61 74 61 0a 09 52  |block of data..R|
00027ab0  33 20 3d 09 70 6f 69 6e  74 65 72 20 74 6f 20 70  |3 =.pointer to p|
00027ac0  6f 6c 6c 77 6f 72 64 20  2a 69 6e 20 52 4d 41 2a  |ollword *in RMA*|
00027ad0  09 20 0a 09 20 09 28 69  66 20 52 30 20 62 69 74  |. .. .(if R0 bit|
00027ae0  20 32 32 20 73 65 74 29  0a 0a 52 65 61 73 6f 6e  | 22 set)..Reason|
00027af0  20 43 6f 64 65 73 20 3a  0a 23 20 47 65 72 70 68  | Codes :.# Gerph|
00027b00  3e 20 54 68 61 6e 6b 73  20 4e 69 63 6b 2c 20 74  |> Thanks Nick, t|
00027b10  68 69 73 20 69 73 20 6d  75 63 68 20 6e 69 63 65  |his is much nice|
00027b20  72 0a 23 49 6e 64 65 6e  74 20 32 3b 54 61 62 20  |r.#Indent 2;Tab |
00027b30  41 6c 69 67 6e 20 72 69  67 68 74 2c 20 41 6c 69  |Align right, Ali|
00027b40  67 6e 20 6c 65 66 74 2c  20 41 6c 69 67 6e 20 72  |gn left, Align r|
00027b50  69 67 68 74 2c 20 41 6c  69 67 6e 20 6c 65 66 74  |ight, Align left|
00027b60  0a 30 09 4e 6f 20 52 65  61 73 6f 6e 09 09 09 09  |.0.No Reason....|
00027b70  39 09 3c 4d 65 6e 75 20  53 65 6c 65 63 74 69 6f  |9.<Menu Selectio|
00027b80  6e 3d 3e 57 69 6d 70 5f  50 6f 6c 6c 39 3e 0a 31  |n=>Wimp_Poll9>.1|
00027b90  09 3c 52 65 64 72 61 77  20 57 69 6e 64 6f 77 3d  |.<Redraw Window=|
00027ba0  3e 57 69 6d 70 5f 50 6f  6c 6c 31 3e 09 09 31 30  |>Wimp_Poll1>..10|
00027bb0  09 3c 53 63 72 6f 6c 6c  20 52 65 71 75 65 73 74  |.<Scroll Request|
00027bc0  3d 3e 57 69 6d 70 5f 50  6f 6c 6c 31 30 3e 0a 32  |=>Wimp_Poll10>.2|
00027bd0  09 3c 4f 70 65 6e 20 57  69 6e 64 6f 77 3d 3e 57  |.<Open Window=>W|
00027be0  69 6d 70 5f 50 6f 6c 6c  32 3e 09 09 31 31 09 3c  |imp_Poll2>..11.<|
00027bf0  4c 6f 73 65 20 43 61 72  65 74 3d 3e 57 69 6d 70  |Lose Caret=>Wimp|
00027c00  5f 50 6f 6c 6c 31 31 3e  0a 33 09 3c 43 6c 6f 73  |_Poll11>.3.<Clos|
00027c10  65 20 57 69 6e 64 6f 77  3d 3e 57 69 6d 70 5f 50  |e Window=>Wimp_P|
00027c20  6f 6c 6c 33 3e 09 09 31  32 09 3c 47 61 69 6e 20  |oll3>..12.<Gain |
00027c30  43 61 72 65 74 3d 3e 57  69 6d 70 5f 50 6f 6c 6c  |Caret=>Wimp_Poll|
00027c40  31 32 3e 0a 34 09 3c 50  6f 69 6e 74 65 72 20 4c  |12>.4.<Pointer L|
00027c50  65 61 76 69 6e 67 20 57  69 6e 64 6f 77 3d 3e 57  |eaving Window=>W|
00027c60  69 6d 70 5f 50 6f 6c 6c  34 3e 09 31 33 09 3c 50  |imp_Poll4>.13.<P|
00027c70  6f 6c 6c 77 6f 72 64 20  6e 6f 6e 2d 7a 65 72 6f  |ollword non-zero|
00027c80  3d 3e 57 69 6d 70 5f 50  6f 6c 6c 31 33 3e 0a 35  |=>Wimp_Poll13>.5|
00027c90  09 3c 50 6f 69 6e 74 65  72 20 45 6e 74 65 72 69  |.<Pointer Enteri|
00027ca0  6e 67 20 57 69 6e 64 6f  77 3d 3e 57 69 6d 70 5f  |ng Window=>Wimp_|
00027cb0  50 6f 6c 6c 35 3e 09 31  34 09 2d 20 31 36 20 52  |Poll5>.14.- 16 R|
00027cc0  65 73 65 72 76 65 64 0a  36 09 3c 4d 6f 75 73 65  |eserved.6.<Mouse|
00027cd0  20 43 6c 69 63 6b 3d 3e  57 69 6d 70 5f 50 6f 6c  | Click=>Wimp_Pol|
00027ce0  6c 36 3e 09 09 31 37 09  3c 55 73 65 72 20 4d 65  |l6>..17.<User Me|
00027cf0  73 73 61 67 65 3d 3e 77  69 6d 70 5f 73 65 6e 64  |ssage=>wimp_send|
00027d00  6d 65 73 73 61 67 65 32  3e 0a 37 09 3c 55 73 65  |message2>.7.<Use|
00027d10  72 20 44 72 61 67 20 42  6f 78 3d 3e 57 69 6d 70  |r Drag Box=>Wimp|
00027d20  5f 50 6f 6c 6c 37 3e 09  09 31 38 09 3c 55 73 65  |_Poll7>..18.<Use|
00027d30  72 20 4d 65 73 73 61 67  65 20 52 65 63 6f 72 64  |r Message Record|
00027d40  65 64 3d 3e 77 69 6d 70  5f 73 65 6e 64 6d 65 73  |ed=>wimp_sendmes|
00027d50  73 61 67 65 32 3e 0a 38  09 3c 4b 65 79 20 50 72  |sage2>.8.<Key Pr|
00027d60  65 73 73 65 64 3d 3e 57  69 6d 70 5f 50 6f 6c 6c  |essed=>Wimp_Poll|
00027d70  38 3e 09 09 31 39 09 3c  55 73 65 72 20 4d 65 73  |8>..19.<User Mes|
00027d80  73 61 67 65 20 41 63 6b  6e 6f 77 6c 65 64 67 65  |sage Acknowledge|
00027d90  3d 3e 77 69 6d 70 5f 73  65 6e 64 6d 65 73 73 61  |=>wimp_sendmessa|
00027da0  67 65 32 3e 0a 23 69 6e  64 65 6e 74 0a 0a 50 72  |ge2>.#indent..Pr|
00027db0  69 6f 72 69 74 79 20 3a  20 48 69 67 68 65 73 74  |iority : Highest|
00027dc0  3a 20 31 37 2d 31 39 20  20 4e 65 78 74 3a 20 31  |: 17-19  Next: 1|
00027dd0  2d 36 2c 38 2c 39 20 20  54 68 65 6e 3a 20 74 68  |-6,8,9  Then: th|
00027de0  65 20 72 65 73 74 20 20  4c 6f 77 65 73 74 3a 20  |e rest  Lowest: |
00027df0  30 0a 0a 52 65 6c 61 74  65 64 20 53 57 49 73 20  |0..Related SWIs |
00027e00  3a 20 3c 57 69 6d 70 5f  50 6f 6c 6c 49 64 6c 65  |: <Wimp_PollIdle|
00027e10  3e 0a 00 00 44 41 54 41  0f 01 00 00 52 65 64 72  |>...DATA....Redr|
00027e20  61 77 20 57 69 6e 64 6f  77 20 52 65 71 75 65 73  |aw Window Reques|
00027e30  74 20 28 31 29 0a 52 65  74 75 72 6e 65 64 20 62  |t (1).Returned b|
00027e40  6c 6f 63 6b 20 63 6f 6e  74 61 69 6e 73 20 3a 0a  |lock contains :.|
00027e50  20 20 20 30 20 20 57 69  6e 64 6f 77 20 68 61 6e  |   0  Window han|
00027e60  64 6c 65 0a 0a 54 68 69  73 20 69 6e 64 69 63 61  |dle..This indica|
00027e70  74 65 73 20 74 68 61 74  20 73 6f 6d 65 20 6f 66  |tes that some of|
00027e80  20 74 68 65 20 77 69 6e  64 6f 77 20 69 73 20 6f  | the window is o|
00027e90  75 74 20 6f 66 20 64 61  74 65 2c 20 61 6e 64 20  |ut of date, and |
00027ea0  6e 65 65 64 73 20 74 6f  20 62 65 20 72 65 64 72  |needs to be redr|
00027eb0  61 77 6e 2e 20 59 6f 75  20 73 68 6f 75 6c 64 20  |awn. You should |
00027ec0  65 6e 74 65 72 20 61 6e  20 75 70 64 61 74 65 20  |enter an update |
00027ed0  6c 6f 6f 70 3a 20 46 69  72 73 74 20 63 61 6c 6c  |loop: First call|
00027ee0  20 3c 57 69 6d 70 5f 52  65 64 72 61 77 57 69 6e  | <Wimp_RedrawWin|
00027ef0  64 6f 77 3e 2c 20 61 6e  64 20 74 68 65 6e 20 63  |dow>, and then c|
00027f00  61 6c 6c 20 3c 57 69 6d  70 5f 47 65 74 52 65 63  |all <Wimp_GetRec|
00027f10  74 61 6e 67 6c 65 3e 20  75 6e 74 69 6c 20 64 6f  |tangle> until do|
00027f20  6e 65 2e 00 44 41 54 41  f1 01 00 00 53 63 72 6f  |ne..DATA....Scro|
00027f30  6c 6c 20 52 65 71 75 65  73 74 20 28 31 30 29 0a  |ll Request (10).|
00027f40  52 65 74 75 72 6e 65 64  20 62 6c 6f 63 6b 20 63  |Returned block c|
00027f50  6f 6e 74 61 69 6e 73 20  3a 0a 20 20 30 09 57 69  |ontains :.  0.Wi|
00027f60  6e 64 6f 77 20 68 61 6e  64 6c 65 0a 20 20 34 09  |ndow handle.  4.|
00027f70  56 69 73 69 62 6c 65 20  61 72 65 61 20 6d 69 6e  |Visible area min|
00027f80  69 6d 75 6d 20 78 0a 20  20 38 09 56 69 73 69 62  |imum x.  8.Visib|
00027f90  6c 65 20 61 72 65 61 20  6d 69 6e 69 6d 75 6d 20  |le area minimum |
00027fa0  79 0a 20 20 31 32 09 56  69 73 69 62 6c 65 20 61  |y.  12.Visible a|
00027fb0  72 65 61 20 6d 61 78 69  6d 75 6d 20 78 0a 20 20  |rea maximum x.  |
00027fc0  31 36 09 56 69 73 69 62  6c 65 20 61 72 65 61 20  |16.Visible area |
00027fd0  6d 61 78 69 6d 75 6d 20  79 0a 20 20 32 30 09 53  |maximum y.  20.S|
00027fe0  63 72 6f 6c 6c 20 78 20  6f 66 66 73 65 74 0a 20  |croll x offset. |
00027ff0  20 32 34 09 53 63 72 6f  6c 6c 20 79 20 6f 66 66  | 24.Scroll y off|
00028000  73 65 74 0a 20 20 32 38  09 48 61 6e 64 6c 65 20  |set.  28.Handle |
00028010  74 6f 20 6f 70 65 6e 20  77 69 6e 64 6f 77 20 62  |to open window b|
00028020  65 68 69 6e 64 0a 20 20  33 32 09 53 63 72 6f 6c  |ehind.  32.Scrol|
00028030  6c 20 78 20 64 69 72 65  63 74 69 6f 6e 0a 20 20  |l x direction.  |
00028040  33 36 09 53 63 72 6f 6c  6c 20 79 20 64 69 72 65  |36.Scroll y dire|
00028050  63 74 69 6f 6e 0a 0a 53  63 72 6f 6c 6c 20 64 69  |ction..Scroll di|
00028060  72 65 63 74 69 6f 6e 73  20 3a 0a 20 20 2d 32 09  |rections :.  -2.|
00028070  50 61 67 65 20 4c 65 66  74 2f 44 6f 77 6e 0a 20  |Page Left/Down. |
00028080  20 2d 31 09 4c 65 66 74  2f 44 6f 77 6e 0a 20 20  | -1.Left/Down.  |
00028090  20 30 0a 20 20 20 31 09  52 69 67 68 74 2f 55 70  | 0.   1.Right/Up|
000280a0  0a 20 20 20 32 09 50 61  67 65 20 52 69 67 68 74  |.   2.Page Right|
000280b0  2f 55 70 0a 0a 59 6f 75  20 75 73 65 20 74 68 65  |/Up..You use the|
000280c0  20 73 63 72 6f 6c 6c 20  64 69 72 65 63 74 69 6f  | scroll directio|
000280d0  6e 73 20 74 6f 20 75 70  64 61 74 65 20 74 68 65  |ns to update the|
000280e0  20 73 63 72 6f 6c 6c 20  6f 66 66 73 65 74 73 2c  | scroll offsets,|
000280f0  20 61 6e 64 20 74 68 65  6e 20 79 6f 75 20 64 6f  | and then you do|
00028100  20 61 20 3c 57 69 6d 70  5f 4f 70 65 6e 57 69 6e  | a <Wimp_OpenWin|
00028110  64 6f 77 3e 2e 00 00 00  44 41 54 41 22 01 00 00  |dow>....DATA"...|
00028120  4c 6f 73 65 20 43 61 72  65 74 20 20 28 31 31 29  |Lose Caret  (11)|
00028130  0a 52 65 74 75 72 6e 65  64 20 62 6c 6f 63 6b 20  |.Returned block |
00028140  63 6f 6e 74 61 69 6e 73  20 3a 0a 0a 20 20 30 09  |contains :..  0.|
00028150  57 69 6e 64 6f 77 20 68  61 6e 64 6c 65 20 74 68  |Window handle th|
00028160  61 74 20 68 61 64 20 66  6f 63 75 73 0a 20 20 34  |at had focus.  4|
00028170  09 69 63 6f 6e 20 68 61  6e 64 6c 65 2c 20 6f 72  |.icon handle, or|
00028180  20 2d 31 0a 20 20 38 09  78 20 6f 66 66 73 65 74  | -1.  8.x offset|
00028190  0a 20 20 31 32 09 79 20  6f 66 66 73 65 74 0a 20  |.  12.y offset. |
000281a0  20 31 36 09 3c 68 65 69  67 68 74 20 2b 20 66 6c  | 16.<height + fl|
000281b0  61 67 73 3d 3e 77 69 6d  70 5f 63 61 72 65 74 68  |ags=>wimp_careth|
000281c0  66 3e 2c 20 6f 72 20 2d  31 0a 20 20 32 30 09 69  |f>, or -1.  20.i|
000281d0  6e 64 65 78 20 69 6e 74  6f 20 73 74 72 69 6e 67  |ndex into string|
000281e0  2c 20 6f 72 20 2d 31 0a  0a 54 68 69 73 20 6d 65  |, or -1..This me|
000281f0  73 73 61 67 65 20 69 73  20 73 65 6e 74 20 74 6f  |ssage is sent to|
00028200  20 77 69 6e 64 6f 77 27  73 20 6f 77 6e 65 72 20  | window's owner |
00028210  77 68 65 6e 20 63 61 72  65 74 20 6d 6f 76 65 73  |when caret moves|
00028220  20 61 77 61 79 20 66 72  6f 6d 20 63 75 72 72 65  | away from curre|
00028230  6e 74 20 77 69 6e 64 6f  77 2e 00 00 44 41 54 41  |nt window...DATA|
00028240  6c 01 00 00 47 61 69 6e  20 43 61 72 65 74 20 20  |l...Gain Caret  |
00028250  28 31 32 29 0a 52 65 74  75 72 6e 65 64 20 62 6c  |(12).Returned bl|
00028260  6f 63 6b 20 63 6f 6e 74  61 69 6e 73 20 3a 0a 0a  |ock contains :..|
00028270  20 20 30 09 57 69 6e 64  6f 77 20 68 61 6e 64 6c  |  0.Window handl|
00028280  65 20 77 68 69 63 68 20  67 61 69 6e 73 20 66 6f  |e which gains fo|
00028290  63 75 73 0a 20 20 34 09  69 63 6f 6e 20 68 61 6e  |cus.  4.icon han|
000282a0  64 6c 65 2c 20 6f 72 20  2d 31 0a 20 20 38 09 78  |dle, or -1.  8.x|
000282b0  20 6f 66 66 73 65 74 0a  20 20 31 32 09 79 20 6f  | offset.  12.y o|
000282c0  66 66 73 65 74 0a 20 20  31 36 09 3c 68 65 69 67  |ffset.  16.<heig|
000282d0  68 74 20 2b 20 66 6c 61  67 73 3d 3e 77 69 6d 70  |ht + flags=>wimp|
000282e0  5f 63 61 72 65 74 68 66  3e 2c 20 6f 72 20 2d 31  |_carethf>, or -1|
000282f0  0a 20 20 32 30 09 69 6e  64 65 78 20 69 6e 74 6f  |.  20.index into|
00028300  20 73 74 72 69 6e 67 2c  20 6f 72 20 2d 31 0a 0a  | string, or -1..|
00028310  54 68 69 73 20 6d 65 73  73 61 67 65 20 69 73 20  |This message is |
00028320  73 65 6e 74 20 74 6f 20  77 69 6e 64 6f 77 27 73  |sent to window's|
00028330  20 6f 77 6e 65 72 20 77  68 65 6e 20 63 61 72 65  | owner when care|
00028340  74 20 6d 6f 76 65 73 20  69 6e 74 6f 20 74 68 65  |t moves into the|
00028350  20 6d 65 6e 74 69 6f 6e  65 64 20 77 69 6e 64 6f  | mentioned windo|
00028360  77 2e 20 49 74 20 69 73  20 6e 6f 74 20 67 65 6e  |w. It is not gen|
00028370  65 72 61 74 65 64 20 69  66 20 63 61 72 65 74 20  |erated if caret |
00028380  6d 6f 76 65 73 20 61 72  6f 75 6e 64 20 69 6e 73  |moves around ins|
00028390  69 64 65 20 74 68 65 20  73 61 6d 65 20 6f 6c 64  |ide the same old|
000283a0  20 77 69 6e 64 6f 77 2e  44 41 54 41 f7 01 00 00  | window.DATA....|
000283b0  4f 70 65 6e 20 57 69 6e  64 6f 77 20 52 65 71 75  |Open Window Requ|
000283c0  65 73 74 20 28 32 29 0a  52 65 74 75 72 6e 65 64  |est (2).Returned|
000283d0  20 62 6c 6f 63 6b 20 63  6f 6e 74 61 69 6e 73 20  | block contains |
000283e0  3a 0a 20 20 30 09 57 69  6e 64 6f 77 20 68 61 6e  |:.  0.Window han|
000283f0  64 6c 65 0a 20 20 34 09  56 69 73 69 62 6c 65 20  |dle.  4.Visible |
00028400  61 72 65 61 20 6d 69 6e  69 6d 75 6d 20 78 0a 20  |area minimum x. |
00028410  20 38 09 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 22 2d 2d  | 8.----------"--|
00028420  2d 2d 2d 2d 2d 2d 2d 20  79 0a 20 20 31 32 09 56  |------- y.  12.V|
00028430  69 73 69 62 6c 65 20 61  72 65 61 20 6d 61 78 69  |isible area maxi|
00028440  6d 75 6d 20 78 0a 20 20  31 36 09 2d 2d 2d 2d 2d  |mum x.  16.-----|
00028450  2d 2d 2d 2d 2d 22 2d 2d  2d 2d 2d 2d 2d 2d 2d 20  |-----"--------- |
00028460  79 0a 20 20 32 30 09 53  63 72 6f 6c 6c 20 78 20  |y.  20.Scroll x |
00028470  6f 66 66 73 65 74 0a 20  20 32 34 09 53 63 72 6f  |offset.  24.Scro|
00028480  6c 6c 20 79 20 6f 66 66  73 65 74 0a 20 20 32 38  |ll y offset.  28|
00028490  09 48 61 6e 64 6c 65 20  74 6f 20 6f 70 65 6e 20  |.Handle to open |
000284a0  77 69 6e 64 6f 77 20 62  65 68 69 6e 64 0a 0a 54  |window behind..T|
000284b0  68 69 73 20 6d 65 73 73  61 67 65 20 69 73 20 72  |his message is r|
000284c0  65 74 75 72 6e 65 64 20  77 68 65 6e 20 77 69 6e  |eturned when win|
000284d0  64 6f 77 20 73 69 7a 65  2c 20 6f 72 20 73 63 72  |dow size, or scr|
000284e0  6f 6c 6c 62 61 72 73 20  61 72 65 20 61 6c 74 65  |ollbars are alte|
000284f0  72 65 64 2e 20 59 6f 75  20 73 68 6f 75 6c 64 20  |red. You should |
00028500  63 61 6c 6c 20 3c 57 69  6d 70 5f 4f 70 65 6e 57  |call <Wimp_OpenW|
00028510  69 6e 64 6f 77 3e 20 75  73 69 6e 67 20 74 68 69  |indow> using thi|
00028520  73 20 62 6c 6f 63 6b 2e  20 49 66 20 79 6f 75 20  |s block. If you |
00028530  68 61 76 65 20 70 61 6e  65 73 2c 20 74 68 65 6e  |have panes, then|
00028540  20 79 6f 75 20 73 68 6f  75 6c 64 20 61 6c 73 6f  | you should also|
00028550  20 75 73 65 20 74 68 65  20 62 6c 6f 63 6b 20 74  | use the block t|
00028560  6f 20 66 69 6e 64 20 74  68 65 69 72 20 6e 65 77  |o find their new|
00028570  20 70 6f 73 69 74 69 6f  6e 2c 20 61 6e 64 20 75  | position, and u|
00028580  73 65 20 57 69 6d 70 5f  4f 70 65 6e 57 69 6e 64  |se Wimp_OpenWind|
00028590  6f 77 20 6f 6e 20 74 68  65 6d 20 74 6f 6f 2e 00  |ow on them too..|
000285a0  44 41 54 41 15 01 00 00  43 6c 6f 73 65 20 57 69  |DATA....Close Wi|
000285b0  6e 64 6f 77 20 52 65 71  75 65 73 74 20 28 33 29  |ndow Request (3)|
000285c0  0a 52 65 74 75 72 6e 65  64 20 62 6c 6f 63 6b 20  |.Returned block |
000285d0  63 6f 6e 74 61 69 6e 73  20 3a 0a 20 20 20 30 20  |contains :.   0 |
000285e0  20 57 69 6e 64 6f 77 20  68 61 6e 64 6c 65 0a 0a  | Window handle..|
000285f0  54 68 65 20 75 73 65 72  20 68 61 73 20 63 6c 69  |The user has cli|
00028600  63 6b 65 64 20 6f 6e 20  74 68 65 20 63 6c 6f 73  |cked on the clos|
00028610  65 20 69 63 6f 6e 20 6f  66 20 77 69 6e 64 6f 77  |e icon of window|
00028620  2e 20 49 66 20 63 6c 6f  73 65 20 69 73 20 4f 4b  |. If close is OK|
00028630  20 62 79 20 79 6f 75 2c  20 74 68 65 6e 20 63 61  | by you, then ca|
00028640  6c 6c 20 3c 57 69 6d 70  5f 43 6c 6f 73 65 57 69  |ll <Wimp_CloseWi|
00028650  6e 64 6f 77 3e 2c 20 75  73 69 6e 67 20 74 68 65  |ndow>, using the|
00028660  20 72 65 74 75 72 6e 65  64 20 62 6c 6f 63 6b 2e  | returned block.|
00028670  20 49 66 20 6e 6f 74 2c  20 6e 6f 74 69 66 79 20  | If not, notify |
00028680  74 68 65 20 75 73 65 72  2e 20 28 27 46 69 6c 65  |the user. ('File|
00028690  20 69 73 20 61 6c 74 65  72 65 64 2e 20 44 6f 20  | is altered. Do |
000286a0  79 6f 75 20 77 61 6e 74  20 74 6f 20 71 75 69 74  |you want to quit|
000286b0  3f 2e 2e 27 29 00 00 00  44 41 54 41 64 01 00 00  |?..')...DATAd...|
000286c0  50 6f 69 6e 74 65 72 20  4c 65 61 76 69 6e 67 20  |Pointer Leaving |
000286d0  57 69 6e 64 6f 77 20 28  34 29 0a 52 65 74 75 72  |Window (4).Retur|
000286e0  6e 65 64 20 62 6c 6f 63  6b 20 63 6f 6e 74 61 69  |ned block contai|
000286f0  6e 73 20 3a 0a 20 20 30  20 57 69 6e 64 6f 77 20  |ns :.  0 Window |
00028700  68 61 6e 64 6c 65 0a 0a  54 68 69 73 20 6d 65 73  |handle..This mes|
00028710  73 61 67 65 20 69 73 20  72 65 74 75 72 6e 65 64  |sage is returned|
00028720  20 77 68 65 6e 20 74 68  65 20 70 6f 69 6e 74 65  | when the pointe|
00028730  72 2c 20 66 6f 72 20 73  6f 6d 65 20 72 65 61 73  |r, for some reas|
00028740  6f 6e 2c 20 73 75 64 64  65 6e 6c 79 20 66 69 6e  |on, suddenly fin|
00028750  64 73 20 69 74 73 65 6c  66 20 6e 6f 20 6c 6f 6e  |ds itself no lon|
00028760  67 65 72 20 6f 76 65 72  20 74 68 69 73 20 77 69  |ger over this wi|
00028770  6e 64 6f 77 2e 20 54 68  69 73 20 63 61 6e 20 62  |ndow. This can b|
00028780  65 20 62 65 63 61 75 73  65 20 79 6f 75 20 6d 6f  |e because you mo|
00028790  76 65 64 20 69 74 20 6f  75 74 73 69 64 65 2c 20  |ved it outside, |
000287a0  62 75 74 20 61 6c 73 6f  20 62 65 63 61 75 73 65  |but also because|
000287b0  20 61 20 6d 65 6e 75 20  68 61 73 20 6f 70 65 6e  | a menu has open|
000287c0  65 64 2c 6f 72 20 73 6f  6d 65 74 68 69 6e 67 20  |ed,or something |
000287d0  73 69 6d 69 6c 61 72 0a  4e 6f 74 65 20 3a 20 59  |similar.Note : Y|
000287e0  6f 75 20 77 69 6c 6c 20  6e 6f 74 20 72 65 63 65  |ou will not rece|
000287f0  69 76 65 20 74 68 69 73  20 6d 65 73 73 61 67 65  |ive this message|
00028800  20 77 68 65 6e 20 74 68  65 20 77 69 6e 64 6f 77  | when the window|
00028810  20 69 73 20 64 65 6c 65  74 65 64 2e 44 41 54 41  | is deleted.DATA|
00028820  3a 02 00 00 50 6f 69 6e  74 65 72 20 45 6e 74 65  |:...Pointer Ente|
00028830  72 69 6e 67 20 57 69 6e  64 6f 77 20 28 35 29 0a  |ring Window (5).|
00028840  52 65 74 75 72 6e 65 64  20 62 6c 6f 63 6b 20 63  |Returned block c|
00028850  6f 6e 74 61 69 6e 73 20  3a 0a 20 20 30 20 57 69  |ontains :.  0 Wi|
00028860  6e 64 6f 77 20 68 61 6e  64 6c 65 0a 0a 54 68 69  |ndow handle..Thi|
00028870  73 20 6d 65 73 73 61 67  65 20 69 73 20 72 65 74  |s message is ret|
00028880  75 72 6e 65 64 20 77 68  65 6e 20 74 68 65 20 70  |urned when the p|
00028890  6f 69 6e 74 65 72 2c 20  66 6f 72 20 73 6f 6d 65  |ointer, for some|
000288a0  20 72 65 61 73 6f 6e 2c  20 73 75 64 64 65 6e 6c  | reason, suddenl|
000288b0  79 20 66 69 6e 64 73 20  69 74 73 65 6c 66 20 6f  |y finds itself o|
000288c0  76 65 72 20 74 68 69 73  20 77 69 6e 64 6f 77 2e  |ver this window.|
000288d0  20 54 68 69 73 20 63 61  6e 20 62 65 20 62 65 63  | This can be bec|
000288e0  61 75 73 65 20 79 6f 75  20 6d 6f 76 65 64 20 69  |ause you moved i|
000288f0  74 20 74 68 65 72 65 2c  20 62 75 74 20 61 6c 73  |t there, but als|
00028900  6f 20 62 65 63 61 75 73  65 20 61 20 6d 65 6e 75  |o because a menu|
00028910  20 69 73 20 63 6c 6f 73  65 64 2c 20 61 20 77 69  | is closed, a wi|
00028920  6e 64 6f 77 20 64 65 6c  65 74 65 64 2c 20 6f 72  |ndow deleted, or|
00028930  20 73 6f 6d 65 74 68 69  6e 67 20 73 69 6d 69 6c  | something simil|
00028940  61 72 0a 0a 4e 6f 74 65  3a 20 49 66 20 79 6f 75  |ar..Note: If you|
00028950  72 20 70 6f 69 6e 74 65  72 20 69 73 20 6f 76 65  |r pointer is ove|
00028960  72 20 61 20 77 69 6e 64  6f 77 2c 20 61 6e 64 20  |r a window, and |
00028970  79 6f 75 20 64 65 6c 65  74 65 20 74 68 69 73 20  |you delete this |
00028980  61 6e 64 20 63 72 65 61  74 65 20 61 20 6e 65 77  |and create a new|
00028990  20 77 69 6e 64 6f 77 2c  20 61 6c 6c 20 69 6e 20  | window, all in |
000289a0  6f 6e 65 20 67 6f 2c 20  79 6f 75 20 77 69 6c 6c  |one go, you will|
000289b0  20 3a 0a 20 31 3a 09 4e  6f 74 20 67 65 74 20 61  | :. 1:.Not get a|
000289c0  20 50 6f 69 6e 74 65 72  5f 4c 65 61 76 69 6e 67  | Pointer_Leaving|
000289d0  5f 57 69 6e 64 6f 77 20  66 6f 72 20 74 68 65 20  |_Window for the |
000289e0  6f 6c 64 20 77 69 6e 64  6f 77 2e 0a 20 32 3a 09  |old window.. 2:.|
000289f0  4e 6f 74 20 67 65 74 20  61 20 50 6f 69 6e 74 65  |Not get a Pointe|
00028a00  72 5f 45 6e 74 65 72 69  6e 67 5f 57 69 6e 64 6f  |r_Entering_Windo|
00028a10  77 20 66 6f 72 20 74 68  65 20 6e 65 77 20 6f 6e  |w for the new on|
00028a20  65 2e 20 28 50 72 6f 62  61 62 6c 79 20 62 65 63  |e. (Probably bec|
00028a30  61 75 73 65 20 74 68 65  79 20 77 69 6c 6c 20 68  |ause they will h|
00028a40  61 76 65 20 74 68 65 20  73 61 6d 65 20 68 61 6e  |ave the same han|
00028a50  64 6c 65 2e 2e 29 00 00  44 41 54 41 ce 00 00 00  |dle..)..DATA....|
00028a60  4d 6f 75 73 65 20 43 6c  69 63 6b 20 28 36 29 0a  |Mouse Click (6).|
00028a70  23 57 72 61 70 20 4f 66  66 0a 52 65 74 75 72 6e  |#Wrap Off.Return|
00028a80  65 64 20 62 6c 6f 63 6b  20 63 6f 6e 74 61 69 6e  |ed block contain|
00028a90  73 20 3a 0a 0a 20 20 30  09 4d 6f 75 73 65 20 78  |s :..  0.Mouse x|
00028aa0  09 09 28 53 63 72 65 65  6e 20 63 6f 6f 72 64 29  |..(Screen coord)|
00028ab0  0a 20 20 34 09 4d 6f 75  73 65 20 79 09 09 28 53  |.  4.Mouse y..(S|
00028ac0  63 72 65 65 6e 20 63 6f  6f 72 64 29 0a 20 20 38  |creen coord).  8|
00028ad0  09 42 75 74 74 6f 6e 73  0a 20 20 31 32 09 57 69  |.Buttons.  12.Wi|
00028ae0  6e 64 6f 77 20 68 61 6e  64 6c 65 09 28 2d 31 3d  |ndow handle.(-1=|
00028af0  62 61 63 6b 67 72 6f 75  6e 64 2c 20 2d 32 3d 69  |background, -2=i|
00028b00  63 6f 6e 62 61 72 29 0a  20 20 31 36 09 49 63 6f  |conbar).  16.Ico|
00028b10  6e 20 68 61 6e 64 6c 65  09 28 2d 31 3d 77 6f 72  |n handle.(-1=wor|
00028b20  6b 61 72 65 61 29 00 00  44 41 54 41 38 01 00 00  |karea)..DATA8...|
00028b30  55 73 65 72 20 44 72 61  67 20 42 6f 78 20 28 37  |User Drag Box (7|
00028b40  29 0a 52 65 74 75 72 6e  65 64 20 62 6c 6f 63 6b  |).Returned block|
00028b50  20 63 6f 6e 74 61 69 6e  73 3a 0a 20 20 30 20 20  | contains:.  0  |
00028b60  44 72 61 67 62 6f 78 09  6d 69 6e 20 78 0a 20 20  |Dragbox.min x.  |
00028b70  34 09 09 6d 69 6e 20 79  0a 20 20 38 09 09 6d 61  |4..min y.  8..ma|
00028b80  78 20 78 0a 20 20 31 32  09 09 6d 61 78 20 79 0a  |x x.  12..max y.|
00028b90  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 69 73  |.This message is|
00028ba0  20 72 65 74 75 72 6e 65  64 20 77 68 65 6e 20 61  | returned when a|
00028bb0  6c 6c 20 62 75 74 74 6f  6e 73 20 61 72 65 20 72  |ll buttons are r|
00028bc0  65 6c 65 61 73 65 64 20  74 6f 20 66 69 6e 69 73  |eleased to finis|
00028bd0  68 20 61 20 55 73 65 72  5f 44 72 61 67 20 6f 70  |h a User_Drag op|
00028be0  65 72 61 74 69 6f 6e 2e  20 54 68 65 20 62 6c 6f  |eration. The blo|
00028bf0  63 6b 20 63 6f 6e 74 61  69 6e 73 20 74 68 65 20  |ck contains the |
00028c00  66 69 6e 61 6c 20 70 6f  73 20 6f 66 20 74 68 65  |final pos of the|
00028c10  20 64 72 61 67 62 6f 78  2e 20 54 6f 20 66 69 6e  | dragbox. To fin|
00028c20  64 20 6f 75 74 20 77 68  65 72 65 20 74 68 65 20  |d out where the |
00028c30  75 73 65 72 20 64 72 6f  70 70 65 64 20 74 68 65  |user dropped the|
00028c40  20 62 6f 78 2c 20 63 61  6c 6c 20 3c 57 69 6d 70  | box, call <Wimp|
00028c50  5f 47 65 74 50 6f 69 6e  74 65 72 49 6e 66 6f 3e  |_GetPointerInfo>|
00028c60  44 41 54 41 87 01 00 00  4b 65 79 20 50 72 65 73  |DATA....Key Pres|
00028c70  73 65 64 20 28 38 29 0a  52 65 74 75 72 6e 65 64  |sed (8).Returned|
00028c80  20 62 6c 6f 63 6b 20 63  6f 6e 74 61 69 6e 73 20  | block contains |
00028c90  3a 0a 0a 20 20 30 09 57  69 6e 64 6f 77 20 68 61  |:..  0.Window ha|
00028ca0  6e 64 6c 65 20 77 69 74  68 20 66 6f 63 75 73 0a  |ndle with focus.|
00028cb0  20 20 34 09 49 63 6f 6e  20 68 61 6e 64 6c 65 2c  |  4.Icon handle,|
00028cc0  20 6f 72 20 2d 31 20 69  66 20 6e 6f 6e 65 0a 20  | or -1 if none. |
00028cd0  20 38 09 78 2d 6f 66 66  73 65 74 20 6f 66 20 63  | 8.x-offset of c|
00028ce0  61 72 65 74 09 28 72 65  6c 61 74 69 76 65 20 74  |aret.(relative t|
00028cf0  6f 29 0a 20 20 31 32 09  79 2d 6f 66 66 73 65 74  |o).  12.y-offset|
00028d00  20 6f 66 20 63 61 72 65  74 09 28 77 69 6e 64 6f  | of caret.(windo|
00028d10  77 20 6f 72 69 67 69 6e  29 0a 20 20 31 36 09 43  |w origin).  16.C|
00028d20  61 72 65 74 20 68 65 69  67 68 74 20 61 6e 64 20  |aret height and |
00028d30  66 6c 61 67 73 0a 20 20  32 30 09 49 6e 64 65 78  |flags.  20.Index|
00028d40  20 6f 66 20 63 61 72 65  74 20 69 6e 74 6f 20 73  | of caret into s|
00028d50  74 72 69 6e 67 20 28 69  66 20 69 63 6f 6e 29 0a  |tring (if icon).|
00028d60  20 20 32 34 09 3c 43 68  61 72 61 63 74 65 72 20  |  24.<Character |
00028d70  63 6f 64 65 3d 3e 77 69  6d 70 5f 70 6f 6c 6c 38  |code=>wimp_poll8|
00028d80  61 3e 20 28 20 49 74 27  73 20 61 20 57 6f 72 64  |a> ( It's a Word|
00028d90  21 20 29 0a 0a 49 66 20  79 6f 75 27 72 65 20 6e  |! )..If you're n|
00028da0  6f 74 20 69 6e 74 65 72  65 73 74 65 64 20 69 6e  |ot interested in|
00028db0  20 74 68 69 73 20 6b 65  79 70 72 65 73 73 2c 20  | this keypress, |
00028dc0  74 68 65 6e 20 70 61 73  73 20 69 74 20 6f 6e 20  |then pass it on |
00028dd0  77 69 74 68 20 3c 57 69  6d 70 5f 50 72 6f 63 65  |with <Wimp_Proce|
00028de0  73 73 4b 65 79 3e 2e 00  44 41 54 41 72 02 00 00  |ssKey>..DATAr...|
00028df0  43 68 61 72 61 63 74 65  72 20 63 6f 64 65 0a 23  |Character code.#|
00028e00  54 61 62 6c 65 20 31 39  20 31 32 0a 4b 65 79 0a  |Table 19 12.Key.|
00028e10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0a 42 61 63 6b 73  |----------.Backs|
00028e20  70 61 63 65 0a 52 65 74  75 72 6e 0a 45 73 63 61  |pace.Return.Esca|
00028e30  70 65 0a 48 6f 6d 65 0a  44 65 6c 65 74 65 0a 50  |pe.Home.Delete.P|
00028e40  72 69 6e 74 0a 46 31 2d  46 39 0a 54 61 62 0a 43  |rint.F1-F9.Tab.C|
00028e50  6f 70 79 0a 4c 65 66 74  0a 52 69 67 68 74 0a 44  |opy.Left.Right.D|
00028e60  6f 77 6e 0a 55 70 0a 50  61 67 65 20 64 6f 77 6e  |own.Up.Page down|
00028e70  0a 50 61 67 65 20 75 70  0a 46 31 30 2d 46 31 32  |.Page up.F10-F12|
00028e80  0a 49 6e 73 65 72 74 0a  41 6c 6f 6e 65 0a 2d 2d  |.Insert.Alone.--|
00028e90  2d 2d 2d 2d 2d 2d 2d 2d  0a 26 30 30 38 0a 26 30  |--------.&008.&0|
00028ea0  30 44 0a 26 30 31 42 0a  26 30 31 45 0a 26 30 37  |0D.&01B.&01E.&07|
00028eb0  46 0a 26 31 38 30 0a 26  31 38 31 2d 26 31 38 39  |F.&180.&181-&189|
00028ec0  0a 26 31 38 41 0a 26 31  38 42 0a 26 31 38 43 0a  |.&18A.&18B.&18C.|
00028ed0  26 31 38 44 0a 26 31 38  45 0a 26 31 38 46 0a 26  |&18D.&18E.&18F.&|
00028ee0  31 39 45 0a 26 31 39 46  0a 26 31 43 41 2d 26 31  |19E.&19F.&1CA-&1|
00028ef0  43 43 0a 26 31 43 44 0a  2b 53 68 69 66 74 0a 2d  |CC.&1CD.+Shift.-|
00028f00  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 26 30 30 38 0a 26  |---------.&008.&|
00028f10  30 30 44 0a 26 30 31 42  0a 26 30 31 45 0a 26 30  |00D.&01B.&01E.&0|
00028f20  37 46 0a 26 31 39 30 0a  26 31 39 31 2d 26 31 39  |7F.&190.&191-&19|
00028f30  39 0a 26 31 39 41 0a 26  31 39 42 0a 26 31 39 43  |9.&19A.&19B.&19C|
00028f40  0a 26 31 39 44 0a 26 31  39 45 0a 26 31 39 46 0a  |.&19D.&19E.&19F.|
00028f50  26 31 38 45 0a 26 31 38  46 0a 26 31 44 41 2d 26  |&18E.&18F.&1DA-&|
00028f60  31 44 43 0a 26 31 44 44  0a 2b 43 74 72 6c 0a 2d  |1DC.&1DD.+Ctrl.-|
00028f70  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 26 30 30 38 0a 26  |---------.&008.&|
00028f80  30 30 44 0a 26 30 31 42  0a 26 30 31 45 0a 26 30  |00D.&01B.&01E.&0|
00028f90  37 46 0a 26 31 41 30 0a  26 31 41 31 2d 26 31 41  |7F.&1A0.&1A1-&1A|
00028fa0  39 0a 26 31 41 41 0a 26  31 41 42 0a 26 31 41 43  |9.&1AA.&1AB.&1AC|
00028fb0  0a 26 31 41 44 0a 26 31  41 45 0a 26 31 41 46 0a  |.&1AD.&1AE.&1AF.|
00028fc0  26 31 42 45 0a 26 31 42  46 0a 26 31 45 41 2d 26  |&1BE.&1BF.&1EA-&|
00028fd0  31 45 43 0a 26 31 45 44  0a 2b 43 74 72 6c 20 53  |1EC.&1ED.+Ctrl S|
00028fe0  68 69 66 74 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |hift.-----------|
00028ff0  0a 26 30 30 38 0a 26 30  30 44 0a 26 30 31 42 0a  |.&008.&00D.&01B.|
00029000  26 30 31 45 0a 26 30 37  46 0a 26 31 42 30 0a 26  |&01E.&07F.&1B0.&|
00029010  31 42 31 2d 26 31 42 39  0a 26 31 42 41 0a 26 31  |1B1-&1B9.&1BA.&1|
00029020  42 42 0a 26 31 42 43 0a  26 31 42 44 0a 26 31 42  |BB.&1BC.&1BD.&1B|
00029030  45 0a 26 31 42 46 0a 26  31 41 45 0a 26 31 41 46  |E.&1BF.&1AE.&1AF|
00029040  0a 26 31 46 41 2d 26 31  46 43 0a 26 31 46 44 0a  |.&1FA-&1FC.&1FD.|
00029050  23 45 6e 64 54 61 62 6c  65 0a 00 00 44 41 54 41  |#EndTable...DATA|
00029060  8d 01 00 00 4d 65 6e 75  20 53 65 6c 65 63 74 69  |....Menu Selecti|
00029070  6f 6e 20 28 39 29 0a 52  65 74 75 72 6e 65 64 20  |on (9).Returned |
00029080  62 6c 6f 63 6b 20 63 6f  6e 74 61 69 6e 73 20 3a  |block contains :|
00029090  0a 20 20 20 30 09 49 74  65 6d 20 69 6e 20 6d 61  |.   0.Item in ma|
000290a0  69 6e 20 6d 65 6e 75 20  73 65 6c 65 63 74 65 64  |in menu selected|
000290b0  2e 0a 20 20 20 34 09 49  74 65 6d 20 69 6e 20 31  |..   4.Item in 1|
000290c0  73 74 20 73 75 62 6d 65  6e 75 2e 0a 20 20 20 38  |st submenu..   8|
000290d0  09 49 74 65 6d 20 69 6e  20 32 6e 64 20 73 75 62  |.Item in 2nd sub|
000290e0  6d 65 6e 75 2e 0a 20 20  2b 2b 09 2b 2b 0a 09 54  |menu..  ++.++..T|
000290f0  65 72 6d 69 6e 61 74 65  64 20 62 79 20 2d 31 0a  |erminated by -1.|
00029100  0a 49 66 20 74 68 65 20  75 73 65 72 20 63 6c 69  |.If the user cli|
00029110  63 6b 73 20 77 69 74 68  20 61 64 6a 75 73 74 20  |cks with adjust |
00029120  28 63 61 6c 6c 20 3c 57  69 6d 70 5f 47 65 74 50  |(call <Wimp_GetP|
00029130  6f 69 6e 74 65 72 49 6e  66 6f 3e 20 74 6f 20 66  |ointerInfo> to f|
00029140  69 6e 64 20 6f 75 74 29  2c 20 74 68 65 20 6d 65  |ind out), the me|
00029150  6e 75 20 73 68 6f 75 6c  64 20 72 65 6d 61 69 6e  |nu should remain|
00029160  20 6f 6e 20 73 63 72 65  65 6e 2e 20 54 6f 20 64  | on screen. To d|
00029170  6f 20 74 68 69 73 2c 20  79 6f 75 20 68 61 76 65  |o this, you have|
00029180  20 74 6f 20 72 65 6f 70  65 6e 20 74 68 65 20 6d  | to reopen the m|
00029190  65 6e 75 20 61 66 74 65  72 20 68 61 76 69 6e 67  |enu after having|
000291a0  20 72 65 73 70 6f 6e 64  65 64 20 74 6f 20 73 65  | responded to se|
000291b0  6c 65 63 74 69 6f 6e 2e  20 54 68 69 73 20 69 73  |lection. This is|
000291c0  20 64 6f 6e 65 20 62 79  20 63 61 6c 6c 69 6e 67  | done by calling|
000291d0  20 3c 57 69 6d 70 5f 43  72 65 61 74 65 4d 65 6e  | <Wimp_CreateMen|
000291e0  75 3e 20 61 67 61 69 6e  2e 00 00 00 44 41 54 41  |u> again....DATA|
000291f0  40 01 00 00 57 69 6d 70  5f 50 6f 6c 6c 49 64 6c  |@...Wimp_PollIdl|
00029200  65 20 20 28 26 34 30 30  30 45 31 29 0a 23 50 61  |e  (&4000E1).#Pa|
00029210  72 65 6e 74 20 57 69 6d  70 5f 0a 3d 3e 09 52 30  |rent Wimp_.=>.R0|
00029220  20 3d 09 3c 6d 61 73 6b  3d 3e 77 69 6d 70 5f 70  | =.<mask=>wimp_p|
00029230  6f 6c 6c 6d 61 73 6b 3e  0a 09 52 31 20 3d 09 32  |ollmask>..R1 =.2|
00029240  35 36 2d 62 79 74 65 20  62 6c 6f 63 6b 0a 09 52  |56-byte block..R|
00029250  32 20 3d 09 65 61 72 6c  69 65 73 74 20 74 69 6d  |2 =.earliest tim|
00029260  65 20 66 6f 72 20 72 65  74 75 72 6e 20 77 69 74  |e for return wit|
00029270  68 20 4e 75 6c 6c 20 52  65 61 73 6f 6e 0a 09 52  |h Null Reason..R|
00029280  33 20 3d 09 70 6f 69 6e  74 65 72 20 74 6f 20 70  |3 =.pointer to p|
00029290  6f 6c 6c 77 6f 72 64 20  2a 69 6e 20 52 4d 41 2a  |ollword *in RMA*|
000292a0  0a 0a 54 68 69 73 20 53  57 49 20 64 6f 65 73 20  |..This SWI does |
000292b0  74 68 65 20 73 61 6d 65  20 61 73 20 3c 57 69 6d  |the same as <Wim|
000292c0  70 5f 50 6f 6c 6c 3e 2c  20 65 78 63 65 70 74 20  |p_Poll>, except |
000292d0  74 68 61 74 20 69 74 20  77 69 6c 6c 20 72 65 74  |that it will ret|
000292e0  75 72 6e 20 74 6f 20 79  6f 75 20 61 73 20 73 6f  |urn to you as so|
000292f0  6f 6e 20 61 73 20 70 6f  73 73 69 62 6c 65 20 61  |on as possible a|
00029300  66 74 65 72 20 74 69 6d  65 20 73 74 61 74 65 64  |fter time stated|
00029310  20 69 6e 20 52 32 2c 20  77 69 74 68 20 61 20 4e  | in R2, with a N|
00029320  75 6c 6c 20 52 65 61 73  6f 6e 2e 0a 44 41 54 41  |ull Reason..DATA|
00029330  4b 02 00 00 50 6f 6c 6c  4d 61 73 6b 0a 42 69 74  |K...PollMask.Bit|
00029340  09 4d 65 61 6e 69 6e 67  20 77 68 65 6e 20 62 69  |.Meaning when bi|
00029350  74 20 73 65 74 20 3a 0a  23 4c 69 6e 65 0a 30 09  |t set :.#Line.0.|
00029360  44 6f 6e 27 74 20 72 65  74 75 72 6e 20 4e 75 6c  |Don't return Nul|
00029370  6c 20 52 65 61 73 6f 6e  2e 0a 31 09 44 6f 6e 27  |l Reason..1.Don'|
00029380  74 20 72 65 74 75 72 6e  20 52 65 64 72 61 77 20  |t return Redraw |
00029390  57 69 6e 64 6f 77 3b 20  51 75 65 75 65 20 69 74  |Window; Queue it|
000293a0  2e 0a 32 2d 33 09 30 0a  34 09 44 6f 6e 27 74 20  |..2-3.0.4.Don't |
000293b0  72 65 74 75 72 6e 20 50  6f 69 6e 74 65 72 20 4c  |return Pointer L|
000293c0  65 61 76 69 6e 67 20 57  69 6e 64 6f 77 2e 0a 35  |eaving Window..5|
000293d0  09 44 6f 6e 27 74 20 72  65 74 75 72 6e 20 50 6f  |.Don't return Po|
000293e0  69 6e 74 65 72 20 45 6e  74 65 72 69 6e 67 20 57  |inter Entering W|
000293f0  69 6e 64 6f 77 2e 0a 36  09 44 6f 6e 27 74 20 72  |indow..6.Don't r|
00029400  65 74 75 72 6e 20 4d 6f  75 73 65 20 43 6c 69 63  |eturn Mouse Clic|
00029410  6b 3b 20 51 75 65 75 65  20 69 74 2e 0a 37 09 30  |k; Queue it..7.0|
00029420  0a 38 09 44 6f 6e 27 74  20 72 65 74 75 72 6e 20  |.8.Don't return |
00029430  4b 65 79 20 50 72 65 73  73 65 64 3b 20 51 75 65  |Key Pressed; Que|
00029440  75 65 20 69 74 2e 0a 39  2d 31 30 09 30 0a 31 31  |ue it..9-10.0.11|
00029450  09 44 6f 6e 27 74 20 72  65 74 75 72 6e 20 4c 6f  |.Don't return Lo|
00029460  73 65 20 43 61 72 65 74  2e 0a 31 32 09 44 6f 6e  |se Caret..12.Don|
00029470  27 74 20 72 65 74 75 72  6e 20 47 61 69 6e 20 43  |'t return Gain C|
00029480  61 72 65 74 2e 0a 31 33  09 44 6f 6e 27 74 20 72  |aret..13.Don't r|
00029490  65 74 75 72 6e 20 70 6f  6c 6c 77 6f 72 64 20 6e  |eturn pollword n|
000294a0  6f 6e 7a 65 72 6f 0a 31  34 2d 31 36 09 30 0a 31  |onzero.14-16.0.1|
000294b0  37 09 44 6f 6e 27 74 20  72 65 74 75 72 6e 20 55  |7.Don't return U|
000294c0  73 65 72 20 4d 65 73 73  61 67 65 2e 0a 31 38 09  |ser Message..18.|
000294d0  44 6f 6e 27 74 20 72 65  74 75 72 6e 20 55 73 65  |Don't return Use|
000294e0  72 20 4d 65 73 73 61 67  65 20 52 65 63 6f 72 64  |r Message Record|
000294f0  65 64 2e 0a 31 39 09 44  6f 6e 27 74 20 72 65 74  |ed..19.Don't ret|
00029500  75 72 6e 20 55 73 65 72  20 4d 65 73 73 61 67 65  |urn User Message|
00029510  20 41 63 6b 6e 6f 77 6c  65 64 67 65 2e 0a 32 30  | Acknowledge..20|
00029520  2d 32 31 09 30 0a 32 32  09 52 33 20 69 73 20 70  |-21.0.22.R3 is p|
00029530  6f 69 6e 74 65 72 20 74  6f 20 70 6f 6c 6c 77 6f  |ointer to pollwo|
00029540  72 64 0a 32 33 09 53 63  61 6e 20 70 6f 6c 6c 77  |rd.23.Scan pollw|
00029550  6f 72 64 20 61 74 20 68  69 67 68 20 70 72 69 6f  |ord at high prio|
00029560  72 69 74 79 0a 32 34 09  53 61 76 65 20 46 50 0a  |rity.24.Save FP.|
00029570  32 35 2d 33 31 09 30 00  44 41 54 41 62 02 00 00  |25-31.0.DATAb...|
00029580  50 6f 6c 6c 57 6f 72 64  20 4e 6f 6e 5a 65 72 6f  |PollWord NonZero|
00029590  20 28 31 33 29 0a 23 50  61 72 65 6e 74 20 57 69  | (13).#Parent Wi|
000295a0  6d 70 5f 50 6f 6c 6c 0a  52 65 74 75 72 6e 65 64  |mp_Poll.Returned|
000295b0  20 62 6c 6f 63 6b 20 63  6f 6e 74 61 69 6e 73 20  | block contains |
000295c0  3a 0a 20 20 30 20 41 64  64 72 65 73 73 20 6f 66  |:.  0 Address of|
000295d0  20 70 6f 6c 6c 20 77 6f  72 64 0a 20 20 34 20 43  | poll word.  4 C|
000295e0  6f 6e 74 65 6e 74 73 20  6f 66 20 70 6f 6c 6c 20  |ontents of poll |
000295f0  77 6f 72 64 0a 0a 54 68  69 73 20 6d 65 73 73 61  |word..This messa|
00029600  67 65 20 69 73 20 72 65  74 75 72 6e 65 64 20 77  |ge is returned w|
00029610  68 65 6e 20 74 68 65 20  70 6f 6c 6c 20 77 6f 72  |hen the poll wor|
00029620  64 20 62 65 63 6f 6d 65  73 20 6e 6f 6e 2d 7a 65  |d becomes non-ze|
00029630  72 6f 2e 20 49 66 20 62  69 74 20 32 33 20 6f 66  |ro. If bit 23 of|
00029640  20 74 68 65 20 3c 57 69  6d 70 5f 50 6f 6c 6c 20  | the <Wimp_Poll |
00029650  6d 61 73 6b 3d 3e 57 69  6d 70 5f 50 6f 6c 6c 6d  |mask=>Wimp_Pollm|
00029660  61 73 6b 3e 20 69 73 20  73 65 74 20 74 68 65 6e  |ask> is set then|
00029670  20 74 68 69 73 20 6d 61  79 20 62 65 20 62 65 66  | this may be bef|
00029680  6f 72 65 20 6d 65 73 73  61 67 65 73 20 61 6e 64  |ore messages and|
00029690  20 72 65 64 72 61 77 20  72 65 71 75 65 73 74 73  | redraw requests|
000296a0  20 68 61 76 65 20 62 65  65 6e 20 72 65 74 75 72  | have been retur|
000296b0  6e 65 64 20 28 66 6f 72  20 65 78 61 6d 70 6c 65  |ned (for example|
000296c0  20 3c 4d 65 73 73 61 67  65 5f 4d 6f 64 65 43 68  | <Message_ModeCh|
000296d0  61 6e 67 65 3d 3e 4d 73  67 5f 34 30 30 43 31 3e  |ange=>Msg_400C1>|
000296e0  29 20 77 68 69 63 68 20  61 6c 6c 6f 77 73 20 74  |) which allows t|
000296f0  61 73 6b 73 20 74 6f 20  6d 61 6b 65 20 75 70 64  |asks to make upd|
00029700  61 74 65 73 20 74 6f 20  64 61 74 61 20 77 68 69  |ates to data whi|
00029710  63 68 20 61 66 66 65 63  74 20 74 68 65 20 63 6f  |ch affect the co|
00029720  6e 74 65 6e 74 73 20 6f  66 20 77 69 6e 64 6f 77  |ntents of window|
00029730  73 20 2a 62 65 66 6f 72  65 2a 20 74 68 65 20 77  |s *before* the w|
00029740  69 6e 64 6f 77 73 20 68  61 76 65 20 62 65 65 6e  |indows have been|
00029750  20 72 65 64 72 61 77 6e  20 77 69 74 68 20 6f 75  | redrawn with ou|
00029760  74 20 6f 66 20 64 61 74  65 20 63 6f 6e 74 65 6e  |t of date conten|
00029770  74 73 2e 20 57 69 74 68  20 74 68 65 20 62 69 74  |ts. With the bit|
00029780  20 63 6c 65 61 72 20 74  68 69 73 20 6d 65 73 73  | clear this mess|
00029790  61 67 65 20 69 73 20 72  65 63 65 69 76 65 64 20  |age is received |
000297a0  61 74 20 6c 6f 77 65 72  20 70 72 69 6f 72 69 74  |at lower priorit|
000297b0  79 20 74 68 61 6e 20 75  73 65 72 20 6d 65 73 73  |y than user mess|
000297c0  61 67 65 73 20 61 6e 64  20 72 65 64 72 61 77 20  |ages and redraw |
000297d0  72 65 71 75 65 73 74 73  2e 0a 00 00 44 49 52 24  |requests....DIR$|
000297e0  80 00 00 00 80 00 00 00  5c 98 02 00 48 ff ff ff  |........\...H...|
000297f0  80 56 dd 28 8c 02 00 00  13 00 00 00 00 00 00 00  |.V.(............|
00029800  21 52 6f 6f 74 00 00 00  e8 9a 02 00 47 fd ff ff  |!Root.......G...|
00029810  5f 80 ce 93 cc 01 00 00  13 00 00 00 00 00 00 00  |_...............|
00029820  31 00 00 00 b4 9c 02 00  47 fd ff ff 93 81 ce 93  |1.......G.......|
00029830  01 02 00 00 13 00 00 00  00 00 00 00 32 00 00 00  |............2...|
00029840  b8 9e 02 00 45 fd ff ff  45 3d f1 ff 68 01 00 00  |....E...E=..h...|
00029850  13 00 00 00 00 00 00 00  33 00 00 00 44 41 54 41  |........3...DATA|
00029860  8c 02 00 00 57 69 6d 70  5f 53 65 6e 64 4d 65 73  |....Wimp_SendMes|
00029870  73 61 67 65 20 20 28 26  34 30 30 45 37 29 0a 23  |sage  (&400E7).#|
00029880  50 61 72 65 6e 74 20 57  69 6d 70 5f 0a 3d 3e 09  |Parent Wimp_.=>.|
00029890  52 30 20 3d 09 52 65 61  73 6f 6e 20 63 6f 64 65  |R0 =.Reason code|
000298a0  2c 20 73 65 65 20 3c 57  69 6d 70 5f 50 6f 6c 6c  |, see <Wimp_Poll|
000298b0  3e 0a 09 52 31 20 3d 09  50 6f 69 6e 74 65 72 20  |>..R1 =.Pointer |
000298c0  74 6f 20 6d 65 73 73 61  67 65 20 62 6c 6f 63 6b  |to message block|
000298d0  0a 09 52 32 20 3d 09 48  61 6e 64 6c 65 20 6f 66  |..R2 =.Handle of|
000298e0  20 64 65 73 74 69 6e 61  74 69 6f 6e 20 74 61 73  | destination tas|
000298f0  6b 0a 09 20 09 6f 72 20  57 69 6e 64 6f 77 20 68  |k.. .or Window h|
00029900  61 6e 64 6c 65 0a 09 20  09 6f 72 20 2d 32 2c 20  |andle.. .or -2, |
00029910  61 6e 64 20 52 33 20 3d  20 69 63 6f 6e 20 68 61  |and R3 = icon ha|
00029920  6e 64 6c 65 0a 09 20 09  6f 72 20 30 20 74 6f 20  |ndle.. .or 0 to |
00029930  42 72 6f 61 64 63 61 73  74 2e 0a 0a 3c 3d 09 52  |Broadcast...<=.R|
00029940  30 20 63 6f 72 72 75 70  74 0a 09 52 32 20 3d 09  |0 corrupt..R2 =.|
00029950  68 61 6e 64 6c 65 20 6f  66 20 64 65 73 74 69 6e  |handle of destin|
00029960  61 74 69 6f 6e 20 74 61  73 6b 2c 20 69 66 20 6e  |ation task, if n|
00029970  6f 74 20 62 72 6f 61 64  63 61 73 74 0a 09 4d 65  |ot broadcast..Me|
00029980  73 73 61 67 65 20 62 6c  6f 63 6b 20 6d 79 5f 72  |ssage block my_r|
00029990  65 66 20 28 2b 38 29 20  61 6e 64 20 73 65 6e 64  |ef (+8) and send|
000299a0  65 72 20 28 2b 34 29 20  75 70 64 61 74 65 64 2e  |er (+4) updated.|
000299b0  0a 0a 4d 6f 73 74 20 6f  66 74 65 6e 2c 20 74 68  |..Most often, th|
000299c0  69 73 20 53 57 49 20 69  73 20 75 73 65 64 20 74  |is SWI is used t|
000299d0  6f 20 73 65 6e 64 20 3c  75 73 65 72 20 6d 65 73  |o send <user mes|
000299e0  73 61 67 65 73 3d 3e 77  69 6d 70 5f 73 65 6e 64  |sages=>wimp_send|
000299f0  6d 65 73 73 61 67 65 31  3e 2e 20 53 65 6e 64 69  |message1>. Sendi|
00029a00  6e 67 20 61 6e 20 41 63  6b 6e 6f 77 6c 65 64 67  |ng an Acknowledg|
00029a10  65 20 28 52 30 20 3d 20  31 39 29 20 74 6f 20 61  |e (R0 = 19) to a|
00029a20  20 77 69 6e 64 6f 77 20  61 6c 6c 6f 77 73 20 69  | window allows i|
00029a30  74 73 20 70 61 72 65 6e  74 27 73 20 74 61 73 6b  |ts parent's task|
00029a40  20 68 61 6e 64 6c 65 20  74 6f 20 62 65 20 66 6f  | handle to be fo|
00029a50  75 6e 64 2e 0a 0a 7b 2a  7d 4e 6f 74 65 3a 7b 2a  |und...{*}Note:{*|
00029a60  7d 20 49 6e 20 76 65 72  73 69 6f 6e 73 20 6f 66  |} In versions of|
00029a70  20 74 68 65 20 57 69 6e  64 6f 77 20 4d 61 6e 61  | the Window Mana|
00029a80  67 65 72 20 70 72 69 6f  72 20 74 6f 20 34 2e 30  |ger prior to 4.0|
00029a90  30 2c 20 6d 65 73 73 61  67 65 20 62 6c 6f 63 6b  |0, message block|
00029aa0  73 20 69 6e 20 64 79 6e  61 6d 69 63 20 61 72 65  |s in dynamic are|
00029ab0  61 73 20 77 69 6c 6c 20  6e 6f 74 20 68 61 76 65  |as will not have|
00029ac0  20 74 68 65 69 72 20 73  65 6e 64 65 72 20 61 6e  | their sender an|
00029ad0  64 20 6d 79 5f 72 65 66  20 66 69 65 6c 64 73 20  |d my_ref fields |
00029ae0  66 69 6c 6c 65 64 2e 0a  44 41 54 41 cc 01 00 00  |filled..DATA....|
00029af0  53 65 6e 64 69 6e 67 20  55 73 65 72 4d 65 73 73  |Sending UserMess|
00029b00  61 67 65 73 20 28 31 37  2c 31 38 2c 31 39 29 0a  |ages (17,18,19).|
00029b10  31 37 09 55 73 65 72 4d  65 73 73 61 67 65 09 09  |17.UserMessage..|
00029b20  09 44 6f 65 73 6e 27 74  20 65 78 70 65 63 74 20  |.Doesn't expect |
00029b30  61 20 72 65 70 6c 79 0a  31 38 09 55 73 65 72 4d  |a reply.18.UserM|
00029b40  65 73 73 61 67 65 5f 52  65 63 6f 72 64 65 64 09  |essage_Recorded.|
00029b50  09 49 66 20 6e 6f 2d 6f  6e 65 20 61 6e 73 77 65  |.If no-one answe|
00029b60  72 73 2c 20 69 74 20 72  65 74 75 72 6e 73 2e 0a  |rs, it returns..|
00029b70  31 39 09 3c 55 73 65 72  4d 65 73 73 61 67 65 5f  |19.<UserMessage_|
00029b80  41 63 6b 6e 6f 77 6c 65  64 67 65 3d 3e 57 69 6d  |Acknowledge=>Wim|
00029b90  70 5f 73 65 6e 64 6d 65  73 73 61 67 65 33 3e 20  |p_sendmessage3> |
00029ba0  20 09 54 65 6c 6c 20 57  69 6d 70 20 77 65 27 6c  | .Tell Wimp we'l|
00029bb0  6c 20 68 61 6e 64 6c 65  20 69 74 2e 0a 0a 46 6f  |l handle it...Fo|
00029bc0  72 6d 61 74 20 6f 66 20  62 6c 6f 63 6b 20 3a 0a  |rmat of block :.|
00029bd0  20 30 09 6c 65 6e 67 74  68 20 6f 66 20 62 6c 6f  | 0.length of blo|
00029be0  63 6b 0a 20 31 32 09 79  6f 75 72 20 72 65 66 20  |ck. 12.your ref |
00029bf0  28 30 20 66 6f 72 20 6f  72 69 67 69 6e 61 6c 20  |(0 for original |
00029c00  6d 65 73 73 61 67 65 2c  20 6e 6f 74 20 61 20 72  |message, not a r|
00029c10  65 70 6c 79 29 0a 20 31  36 09 3c 6d 65 73 73 61  |eply). 16.<messa|
00029c20  67 65 20 63 6f 64 65 3d  3e 4d 73 67 5f 3e 0a 20  |ge code=>Msg_>. |
00029c30  32 30 09 2e 2e 64 61 74  61 2e 2e 0a 0a 57 69 6d  |20...data....Wim|
00029c40  70 5f 53 65 6e 64 4d 65  73 73 61 67 65 20 66 69  |p_SendMessage fi|
00029c50  6c 6c 73 20 6f 75 74 20  74 68 65 20 66 6f 6c 6c  |lls out the foll|
00029c60  6f 77 69 6e 67 20 66 69  65 6c 64 73 3a 0a 20 34  |owing fields:. 4|
00029c70  09 48 61 6e 64 6c 65 20  6f 66 20 73 65 6e 64 65  |.Handle of sende|
00029c80  72 0a 20 38 09 6d 79 20  72 65 66 20 28 41 20 72  |r. 8.my ref (A r|
00029c90  65 70 6c 79 20 74 6f 20  74 68 69 73 20 6d 65 73  |eply to this mes|
00029ca0  73 61 67 65 20 77 69 6c  6c 20 75 73 65 20 74 68  |sage will use th|
00029cb0  69 73 2e 29 44 41 54 41  01 02 00 00 52 65 63 65  |is.)DATA....Rece|
00029cc0  69 76 69 6e 67 20 55 73  65 72 4d 65 73 73 61 67  |iving UserMessag|
00029cd0  65 73 20 28 31 37 2c 31  38 2c 31 39 29 0a 31 37  |es (17,18,19).17|
00029ce0  09 55 73 65 72 4d 65 73  73 61 67 65 09 09 09 44  |.UserMessage...D|
00029cf0  6f 65 73 6e 27 74 20 65  78 70 65 63 74 20 61 20  |oesn't expect a |
00029d00  72 65 70 6c 79 0a 31 38  09 55 73 65 72 4d 65 73  |reply.18.UserMes|
00029d10  73 61 67 65 5f 52 65 63  6f 72 64 65 64 09 09 49  |sage_Recorded..I|
00029d20  66 20 6e 6f 6f 6e 65 20  61 6e 73 77 65 72 73 2c  |f noone answers,|
00029d30  20 69 74 20 72 65 74 75  72 6e 73 2e 0a 31 39 09  | it returns..19.|
00029d40  3c 55 73 65 72 4d 65 73  73 61 67 65 5f 41 63 6b  |<UserMessage_Ack|
00029d50  6e 6f 77 6c 65 64 67 65  3d 3e 57 69 6d 70 5f 53  |nowledge=>Wimp_S|
00029d60  65 6e 64 4d 65 73 73 61  67 65 33 3e 20 20 09 41  |endMessage3>  .A|
00029d70  20 55 4d 5f 52 65 63 6f  72 64 65 64 20 72 65 74  | UM_Recorded ret|
00029d80  75 72 6e 73 2e 0a 0a 46  6f 72 6d 61 74 20 6f 66  |urns...Format of|
00029d90  20 62 6c 6f 63 6b 20 3a  0a 20 30 09 6c 65 6e 67  | block :. 0.leng|
00029da0  74 68 20 6f 66 20 62 6c  6f 63 6b 0a 20 34 09 48  |th of block. 4.H|
00029db0  61 6e 64 6c 65 20 6f 66  20 73 65 6e 64 65 72 0a  |andle of sender.|
00029dc0  20 38 09 6d 79 20 72 65  66 0a 20 31 32 09 79 6f  | 8.my ref. 12.yo|
00029dd0  75 72 20 72 65 66 0a 20  31 36 09 3c 6d 65 73 73  |ur ref. 16.<mess|
00029de0  61 67 65 20 63 6f 64 65  3d 3e 4d 73 67 5f 3e 0a  |age code=>Msg_>.|
00029df0  20 32 30 09 2e 2e 64 61  74 61 2e 2e 0a 0a 54 6f  | 20...data....To|
00029e00  20 61 63 6b 6e 6f 77 6c  65 64 67 65 20 6d 65 73  | acknowledge mes|
00029e10  73 61 67 65 2c 20 66 69  72 73 74 20 73 65 74 20  |sage, first set |
00029e20  79 6f 75 72 5f 72 65 66  20 3d 20 6d 79 5f 72 65  |your_ref = my_re|
00029e30  66 2c 20 61 6e 64 20 74  68 65 6e 20 65 69 74 68  |f, and then eith|
00029e40  65 72 20 6a 75 73 74 20  63 61 6c 6c 20 57 69 6d  |er just call Wim|
00029e50  70 5f 53 65 6e 64 4d 65  73 73 61 67 65 2c 31 39  |p_SendMessage,19|
00029e60  20 77 68 69 63 68 20 73  74 6f 70 73 20 74 68 65  | which stops the|
00029e70  20 6d 65 73 73 61 67 65  20 66 72 6f 6d 20 72 65  | message from re|
00029e80  74 75 72 6e 69 6e 67 2c  20 6f 72 20 73 65 6e 64  |turning, or send|
00029e90  20 61 6e 79 20 55 73 65  72 4d 65 73 73 61 67 65  | any UserMessage|
00029ea0  20 62 61 63 6b 20 74 6f  20 74 68 65 20 73 65 6e  | back to the sen|
00029eb0  64 65 72 2e 0a 00 00 00  44 41 54 41 68 01 00 00  |der.....DATAh...|
00029ec0  41 63 6b 6e 6f 77 6c 65  64 67 65 0a 54 68 69 73  |Acknowledge.This|
00029ed0  20 70 72 65 76 65 6e 74  73 20 61 20 62 72 6f 61  | prevents a broa|
00029ee0  64 63 61 73 74 20 6d 65  73 73 61 67 65 20 66 72  |dcast message fr|
00029ef0  6f 6d 20 62 65 69 6e 67  20 70 61 73 73 65 64 20  |om being passed |
00029f00  6f 6e 2c 20 61 6e 64 20  61 20 55 73 65 72 4d 65  |on, and a UserMe|
00029f10  73 73 61 67 65 5f 52 65  63 6f 72 64 65 64 20 66  |ssage_Recorded f|
00029f20  72 6f 6d 20 62 65 69 6e  67 20 72 65 74 75 72 6e  |rom being return|
00029f30  65 64 20 74 6f 20 74 68  65 20 73 65 6e 64 65 72  |ed to the sender|
00029f40  2e 0a 0a 63 61 6c 6c 20  3c 57 69 6d 70 5f 53 65  |...call <Wimp_Se|
00029f50  6e 64 4d 65 73 73 61 67  65 3e 20 77 69 74 68 20  |ndMessage> with |
00029f60  3a 0a 79 6f 75 72 5f 72  65 66 09 3d 20 30 0a 52  |:.your_ref.= 0.R|
00029f70  32 09 09 3d 20 74 61 73  6b 2f 77 69 6e 64 6f 77  |2..= task/window|
00029f80  20 68 61 6e 64 6c 65 0a  52 33 09 09 3d 20 69 63  | handle.R3..= ic|
00029f90  6f 6e 20 68 61 6e 64 6c  65 20 69 66 20 52 32 20  |on handle if R2 |
00029fa0  3d 20 2d 32 0a 0a 4f 6e  20 65 78 69 74 20 52 32  |= -2..On exit R2|
00029fb0  20 3d 20 74 61 73 6b 20  68 61 6e 64 6c 65 2e 0a  | = task handle..|
00029fc0  0a 59 6f 75 20 63 61 6e  20 61 6c 73 6f 20 75 73  |.You can also us|
00029fd0  65 20 74 68 69 73 20 69  66 20 79 6f 75 20 6f 6e  |e this if you on|
00029fe0  6c 79 20 77 61 6e 74 20  74 6f 20 66 69 6e 64 20  |ly want to find |
00029ff0  6f 75 74 20 77 68 6f 20  6f 77 6e 73 20 61 20 77  |out who owns a w|
0002a000  69 6e 64 6f 77 20 6f 72  20 61 6e 20 69 63 6f 6e  |indow or an icon|
0002a010  20 6f 6e 20 74 68 65 20  69 63 6f 6e 62 61 72 2e  | on the iconbar.|
0002a020  44 49 52 24 c4 00 00 00  c4 00 00 00 e4 a0 02 00  |DIR$............|
0002a030  48 ff ff ff 18 3f 53 27  cd 01 00 00 13 00 00 00  |H....?S'........|
0002a040  00 00 00 00 50 61 6c 65  74 74 65 00 b4 a2 02 00  |....Palette.....|
0002a050  48 ff ff ff 0b 15 73 2b  a4 02 00 00 13 00 00 00  |H.....s+........|
0002a060  00 00 00 00 50 69 78 54  72 61 6e 73 00 00 00 00  |....PixTrans....|
0002a070  58 a5 02 00 47 ff ff ff  f8 ab 95 cd 71 02 00 00  |X...G.......q...|
0002a080  13 00 00 00 00 00 00 00  73 79 73 69 6e 66 6f 00  |........sysinfo.|
0002a090  cc a7 02 00 48 fd ff ff  e8 50 0b 28 6b 00 00 00  |....H....P.(k...|
0002a0a0  13 00 00 00 00 00 00 00  53 79 73 49 6e 66 6f 5f  |........SysInfo_|
0002a0b0  44 69 72 65 63 74 69 6f  6e 00 00 00 38 a8 02 00  |Direction...8...|
0002a0c0  48 fd ff ff 66 57 0b 28  67 00 00 00 13 00 00 00  |H...fW.(g.......|
0002a0d0  00 00 00 00 53 79 73 49  6e 66 6f 5f 53 74 61 74  |....SysInfo_Stat|
0002a0e0  65 00 00 00 44 41 54 41  cd 01 00 00 57 69 6d 70  |e...DATA....Wimp|
0002a0f0  5f 52 65 61 64 50 61 6c  65 74 74 65 20 20 28 26  |_ReadPalette  (&|
0002a100  34 30 30 45 35 29 0a 23  50 61 72 65 6e 74 20 57  |400E5).#Parent W|
0002a110  69 6d 70 5f 0a 3d 3e 09  52 31 20 3d 09 70 6f 69  |imp_.=>.R1 =.poi|
0002a120  6e 74 65 72 20 74 6f 20  32 30 2d 77 6f 72 64 20  |nter to 20-word |
0002a130  3c 70 61 6c 65 74 74 65  20 62 6c 6f 63 6b 3d 3e  |<palette block=>|
0002a140  57 69 6d 70 5f 70 61 6c  65 74 74 65 62 6c 6f 63  |Wimp_palettebloc|
0002a150  6b 3e 0a 3c 3d 09 52 30  20 63 6f 72 72 75 70 74  |k>.<=.R0 corrupt|
0002a160  0a 09 62 6c 6f 63 6b 20  63 6f 6e 74 61 69 6e 73  |..block contains|
0002a170  20 70 61 6c 65 74 74 65  20 64 65 66 69 6e 69 74  | palette definit|
0002a180  69 6f 6e 73 0a 0a 54 68  69 73 20 53 57 49 20 72  |ions..This SWI r|
0002a190  65 74 75 72 6e 73 20 74  68 65 20 63 75 72 72 65  |eturns the curre|
0002a1a0  6e 74 20 57 69 6d 70 20  70 61 6c 65 74 74 65 20  |nt Wimp palette |
0002a1b0  73 65 74 74 69 6e 67 73  2c 20 62 75 74 20 69 6e  |settings, but in|
0002a1c0  20 74 68 65 20 66 6f 72  6d 20 26 42 30 47 30 52  | the form &B0G0R|
0002a1d0  30 4c 4c 2c 20 77 68 65  72 65 20 4c 20 69 73 20  |0LL, where L is |
0002a1e0  74 68 65 20 6c 6f 67 69  63 61 6c 20 63 6f 6c 6f  |the logical colo|
0002a1f0  75 72 20 6e 75 6d 62 65  72 20 75 73 65 64 20 66  |ur number used f|
0002a200  6f 72 20 74 68 65 20 57  69 6d 70 20 63 6f 6c 6f  |or the Wimp colo|
0002a210  75 72 20 30 20 74 6f 20  31 35 20 28 6f 72 20 25  |ur 0 to 15 (or %|
0002a220  54 54 47 47 47 47 47 47  20 69 6e 20 32 35 36 20  |TTGGGGGG in 256 |
0002a230  63 6f 6c 6f 75 72 20 6d  6f 64 65 73 29 2e 0a 0a  |colour modes)...|
0002a240  4e 6f 74 65 20 74 68 61  74 20 77 68 65 6e 20 65  |Note that when e|
0002a250  76 65 6e 20 77 68 65 6e  20 74 68 65 20 76 61 6c  |ven when the val|
0002a260  75 65 73 20 61 72 65 20  6d 61 73 6b 65 64 20 74  |ues are masked t|
0002a270  6f 20 67 69 76 65 20 26  42 30 52 30 47 30 30 30  |o give &B0R0G000|
0002a280  20 74 68 69 73 20 69 73  20 6e 6f 74 20 63 6f 72  | this is not cor|
0002a290  72 65 63 74 20 66 6f 72  20 70 61 73 73 69 6e 67  |rect for passing|
0002a2a0  20 74 6f 20 43 6f 6c 6f  75 72 54 72 61 6e 73 2e  | to ColourTrans.|
0002a2b0  0a 00 00 00 44 41 54 41  a4 02 00 00 57 69 6d 70  |....DATA....Wimp|
0002a2c0  5f 52 65 61 64 50 69 78  54 72 61 6e 73 20 20 28  |_ReadPixTrans  (|
0002a2d0  26 34 30 30 45 44 29 0a  23 50 61 72 65 6e 74 20  |&400ED).#Parent |
0002a2e0  57 69 6d 70 5f 0a 3d 3e  09 52 30 20 3d 09 26 30  |Wimp_.=>.R0 =.&0|
0002a2f0  78 78 20 69 66 20 73 70  72 69 74 65 20 69 6e 20  |xx if sprite in |
0002a300  73 79 73 74 65 6d 20 61  72 65 61 0a 09 20 09 26  |system area.. .&|
0002a310  31 78 78 20 69 66 20 73  70 72 69 74 65 20 69 6e  |1xx if sprite in|
0002a320  20 75 73 65 72 20 61 72  65 61 2c 20 61 6e 64 20  | user area, and |
0002a330  52 32 20 3d 20 6e 61 6d  65 0a 09 20 09 26 32 78  |R2 = name.. .&2x|
0002a340  78 20 69 66 20 73 70 72  69 74 65 20 69 6e 20 75  |x if sprite in u|
0002a350  73 65 72 20 61 72 65 61  2c 20 61 6e 64 20 52 32  |ser area, and R2|
0002a360  20 3d 20 70 6f 69 6e 74  65 72 0a 09 52 31 20 3d  | = pointer..R1 =|
0002a370  09 70 6f 69 6e 74 65 72  20 74 6f 20 3c 73 70 72  |.pointer to <spr|
0002a380  69 74 65 61 72 65 61 3d  3e 4f 53 3a 4f 53 5f 53  |itearea=>OS:OS_S|
0002a390  70 72 69 74 65 4f 70 5f  41 72 65 61 3e 20 28 30  |priteOp_Area> (0|
0002a3a0  20 66 6f 72 20 73 79 73  74 65 6d 2c 20 31 20 66  | for system, 1 f|
0002a3b0  6f 72 20 77 69 6d 70 29  0a 09 52 32 20 3d 09 70  |or wimp)..R2 =.p|
0002a3c0  6f 69 6e 74 65 72 20 74  6f 20 73 70 72 69 74 65  |ointer to sprite|
0002a3d0  20 6e 61 6d 65 2c 20 6f  72 20 3c 73 70 72 69 74  | name, or <sprit|
0002a3e0  65 3d 3e 4f 53 3a 4f 53  5f 53 70 72 69 74 65 4f  |e=>OS:OS_SpriteO|
0002a3f0  70 5f 50 74 72 3e 20 69  74 73 65 6c 66 0a 09 52  |p_Ptr> itself..R|
0002a400  36 20 3d 09 42 6c 6f 63  6b 20 74 6f 20 72 65 63  |6 =.Block to rec|
0002a410  65 69 76 65 20 73 63 61  6c 65 20 66 61 63 74 6f  |eive scale facto|
0002a420  72 73 0a 09 52 37 20 3d  09 42 6c 6f 63 6b 20 74  |rs..R7 =.Block t|
0002a430  6f 20 72 65 63 65 69 76  65 20 74 72 61 6e 73 6c  |o receive transl|
0002a440  61 74 69 6f 6e 20 74 61  62 6c 65 20 28 32 2c 34  |ation table (2,4|
0002a450  20 6f 72 20 31 36 20 62  79 74 65 73 20 6c 6f 6e  | or 16 bytes lon|
0002a460  67 29 0a 0a 3c 3d 09 52  30 20 63 6f 72 72 75 70  |g)..<=.R0 corrup|
0002a470  74 0a 09 42 6c 6f 63 6b  20 61 74 20 52 36 20 63  |t..Block at R6 c|
0002a480  6f 6e 74 61 69 6e 73 20  3c 73 63 61 6c 65 20 66  |ontains <scale f|
0002a490  61 63 74 6f 72 73 3d 3e  4f 53 3a 4f 53 5f 73 63  |actors=>OS:OS_sc|
0002a4a0  61 6c 65 66 61 63 74 6f  72 73 3e 0a 09 42 6c 6f  |alefactors>..Blo|
0002a4b0  63 6b 20 61 74 20 52 37  20 63 6f 6e 74 61 69 6e  |ck at R7 contain|
0002a4c0  73 20 3c 74 72 61 6e 73  6c 61 74 69 6f 6e 20 74  |s <translation t|
0002a4d0  61 62 6c 65 3d 3e 4f 53  3a 43 6f 6c 6f 75 72 54  |able=>OS:ColourT|
0002a4e0  72 61 6e 73 5f 70 69 78  74 72 61 6e 73 3e 0a 0a  |rans_pixtrans>..|
0002a4f0  54 68 69 73 20 53 57 49  20 67 69 76 65 73 20 69  |This SWI gives i|
0002a500  6e 66 6f 20 6f 66 20 68  6f 77 20 74 68 65 20 57  |nfo of how the W|
0002a510  69 6d 70 20 77 6f 75 6c  64 20 70 6c 6f 74 20 74  |imp would plot t|
0002a520  68 69 73 20 69 63 6f 6e  2e 0a 0a 55 6e 64 65 72  |his icon...Under|
0002a530  20 52 49 53 43 20 4f 53  20 32 20 73 70 72 69 74  | RISC OS 2 sprit|
0002a540  65 20 63 61 6e 6e 6f 74  20 62 65 20 32 35 36 2d  |e cannot be 256-|
0002a550  63 6f 6c 6f 75 72 2e 0a  44 41 54 41 71 02 00 00  |colour..DATAq...|
0002a560  57 69 6d 70 5f 52 65 61  64 53 79 73 49 6e 66 6f  |Wimp_ReadSysInfo|
0002a570  20 20 28 26 34 30 30 46  32 29 0a 23 50 61 72 65  |  (&400F2).#Pare|
0002a580  6e 74 20 57 69 6d 70 5f  0a 3d 3e 09 52 30 20 3d  |nt Wimp_.=>.R0 =|
0002a590  09 69 74 65 6d 20 69 6e  64 65 78 0a 3c 3d 09 52  |.item index.<=.R|
0002a5a0  30 20 3d 09 69 74 65 6d  20 76 61 6c 75 65 0a 0a  |0 =.item value..|
0002a5b0  23 54 61 62 0a 43 75 72  72 65 6e 74 6c 79 20 64  |#Tab.Currently d|
0002a5c0  65 66 69 6e 65 64 20 76  61 6c 75 65 73 20 66 6f  |efined values fo|
0002a5d0  72 20 52 30 20 3a 0a 30  09 4e 75 6d 62 65 72 20  |r R0 :.0.Number |
0002a5e0  6f 66 20 61 63 74 69 76  65 20 74 61 73 6b 73 0a  |of active tasks.|
0002a5f0  20 09 28 49 73 20 30 20  69 66 20 63 6f 6d 70 6c  | .(Is 0 if compl|
0002a600  65 74 65 6c 79 20 6f 75  74 73 69 64 65 20 64 65  |etely outside de|
0002a610  73 6b 74 6f 70 29 0a 31  09 57 69 6d 70 20 6d 6f  |sktop).1.Wimp mo|
0002a620  64 65 0a 32 09 53 70 72  69 74 65 20 73 75 66 66  |de.2.Sprite suff|
0002a630  69 78 0a 33 09 3c 44 65  73 6b 74 6f 70 20 73 74  |ix.3.<Desktop st|
0002a640  61 74 65 3d 3e 57 69 6d  70 5f 52 65 61 64 53 79  |ate=>Wimp_ReadSy|
0002a650  73 49 6e 66 6f 5f 53 74  61 74 65 3e 0a 34 09 3c  |sInfo_State>.4.<|
0002a660  57 72 69 74 65 20 64 69  72 65 63 74 69 6f 6e 3d  |Write direction=|
0002a670  3e 57 69 6d 70 5f 52 65  61 64 53 79 73 49 6e 66  |>Wimp_ReadSysInf|
0002a680  6f 5f 44 69 72 65 63 74  69 6f 6e 3e 0a 35 09 52  |o_Direction>.5.R|
0002a690  30 20 3d 09 43 75 72 72  65 6e 74 20 74 61 73 6b  |0 =.Current task|
0002a6a0  20 68 61 6e 64 6c 65 20  28 30 20 69 66 20 6e 6f  | handle (0 if no|
0002a6b0  6e 65 29 0a 20 09 52 31  20 3d 09 56 65 72 73 69  |ne). .R1 =.Versi|
0002a6c0  6f 6e 20 6f 66 20 57 69  6e 64 6f 77 4d 61 6e 61  |on of WindowMana|
0002a6d0  67 65 72 20 65 78 70 65  63 74 65 64 20 62 79 20  |ger expected by |
0002a6e0  74 61 73 6b 20 61 73 20  67 69 76 65 6e 20 69 6e  |task as given in|
0002a6f0  20 3c 57 69 6d 70 5f 49  6e 69 74 69 61 6c 69 73  | <Wimp_Initialis|
0002a700  65 3e 0a 37 09 56 65 72  73 69 6f 6e 20 6f 66 20  |e>.7.Version of |
0002a710  57 69 6e 64 6f 77 4d 61  6e 61 67 65 72 20 2a 20  |WindowManager * |
0002a720  31 30 30 0a 38 09 52 30  20 3d 09 46 6f 6e 74 68  |100.8.R0 =.Fonth|
0002a730  61 6e 64 6c 65 20 6f 66  20 22 64 65 73 6b 74 6f  |andle of "deskto|
0002a740  70 20 66 6f 6e 74 22 20  28 30 20 66 6f 72 20 73  |p font" (0 for s|
0002a750  79 73 74 65 6d 20 66 6f  6e 74 29 0a 20 09 52 31  |ystem font). .R1|
0002a760  20 3d 09 46 6f 6e 74 68  61 6e 64 6c 65 20 6f 66  | =.Fonthandle of|
0002a770  20 22 77 69 6d 70 73 79  6d 62 6f 6c 20 66 6f 6e  | "wimpsymbol fon|
0002a780  74 22 0a 39 09 54 6f 6f  6c 73 70 72 69 74 65 73  |t".9.Toolsprites|
0002a790  20 3c 73 70 72 69 74 65  20 61 72 65 61 3d 3e 4f  | <sprite area=>O|
0002a7a0  53 3a 4f 53 5f 53 70 72  69 74 65 4f 70 5f 41 72  |S:OS_SpriteOp_Ar|
0002a7b0  65 61 3e 0a 31 30 09 41  70 70 6c 69 63 61 74 69  |ea>.10.Applicati|
0002a7c0  6f 6e 20 6c 69 6d 69 74  0a 00 00 00 44 41 54 41  |on limit....DATA|
0002a7d0  6b 00 00 00 57 69 6d 70  20 57 72 69 74 65 20 44  |k...Wimp Write D|
0002a7e0  69 72 65 63 74 69 6f 6e  73 0a 23 50 61 72 65 6e  |irections.#Paren|
0002a7f0  74 20 57 69 6d 70 5f 52  65 61 64 53 79 73 49 6e  |t Wimp_ReadSysIn|
0002a800  66 6f 0a 56 61 6c 75 65  09 4d 65 61 6e 69 6e 67  |fo.Value.Meaning|
0002a810  0a 23 4c 69 6e 65 0a 30  09 4c 65 66 74 20 74 6f  |.#Line.0.Left to|
0002a820  20 72 69 67 68 74 0a 31  09 52 69 67 68 74 20 74  | right.1.Right t|
0002a830  6f 20 6c 65 66 74 0a 00  44 41 54 41 67 00 00 00  |o left..DATAg...|
0002a840  57 69 6d 70 20 53 74 61  74 65 73 0a 23 50 61 72  |Wimp States.#Par|
0002a850  65 6e 74 20 57 69 6d 70  5f 52 65 61 64 53 79 73  |ent Wimp_ReadSys|
0002a860  49 6e 66 6f 0a 56 61 6c  75 65 09 4d 65 61 6e 69  |Info.Value.Meani|
0002a870  6e 67 0a 23 4c 69 6e 65  0a 23 57 72 61 70 20 4f  |ng.#Line.#Wrap O|
0002a880  66 66 0a 30 09 43 6f 6d  6d 61 6e 64 20 6c 69 6e  |ff.0.Command lin|
0002a890  65 0a 31 09 49 6e 20 64  65 73 6b 74 6f 70 0a 00  |e.1.In desktop..|
0002a8a0  44 41 54 41 db 01 00 00  4d 6f 64 65 20 53 70 65  |DATA....Mode Spe|
0002a8b0  63 69 66 69 65 72 20 42  6c 6f 63 6b 73 0a 4f 66  |cifier Blocks.Of|
0002a8c0  66 73 65 74 09 56 61 6c  75 65 0a 23 4c 69 6e 65  |fset.Value.#Line|
0002a8d0  0a 30 09 4d 6f 64 65 20  73 65 6c 65 63 74 6f 72  |.0.Mode selector|
0002a8e0  20 66 6c 61 67 73 0a 09  62 69 74 09 30 09 3d 20  | flags..bit.0.= |
0002a8f0  31 0a 09 62 69 74 73 09  31 2d 37 09 3d 20 30 20  |1..bits.1-7.= 0 |
0002a900  28 66 6f 72 6d 61 74 20  73 70 65 63 69 66 69 65  |(format specifie|
0002a910  72 29 0a 09 62 69 74 73  09 38 2d 33 31 09 3d 20  |r)..bits.8-31.= |
0002a920  30 20 28 72 65 73 65 72  76 65 64 29 0a 34 09 78  |0 (reserved).4.x|
0002a930  2d 72 65 73 6f 6c 75 74  69 6f 6e 20 28 70 69 78  |-resolution (pix|
0002a940  65 6c 73 29 0a 38 09 79  2d 72 65 73 6f 6c 75 74  |els).8.y-resolut|
0002a950  69 6f 6e 20 28 70 69 78  65 6c 73 29 0a 31 32 09  |ion (pixels).12.|
0002a960  70 69 78 65 6c 20 64 65  70 74 68 0a 09 30 09 3d  |pixel depth..0.=|
0002a970  20 31 20 62 70 70 0a 09  31 09 3d 20 32 20 62 70  | 1 bpp..1.= 2 bp|
0002a980  70 0a 09 32 09 3d 20 34  20 62 70 70 0a 09 33 09  |p..2.= 4 bpp..3.|
0002a990  3d 20 38 20 62 70 70 0a  09 34 09 3d 20 31 36 20  |= 8 bpp..4.= 16 |
0002a9a0  62 70 70 0a 09 35 09 3d  20 32 34 20 62 70 70 0a  |bpp..5.= 24 bpp.|
0002a9b0  31 36 09 66 72 61 6d 65  20 72 61 74 65 20 28 48  |16.frame rate (H|
0002a9c0  7a 29 20 28 2d 31 20 3d  20 75 73 65 20 66 69 72  |z) (-1 = use fir|
0002a9d0  73 74 20 6d 61 74 63 68  29 0a 32 30 09 6f 70 74  |st match).20.opt|
0002a9e0  69 6f 6e 61 6c 20 70 61  69 72 73 20 6f 66 20 77  |ional pairs of w|
0002a9f0  6f 72 64 73 0a 09 6d 6f  64 65 20 76 61 72 69 61  |ords..mode varia|
0002aa00  62 6c 65 20 69 6e 64 65  78 2c 20 76 61 6c 75 65  |ble index, value|
0002aa10  0a 09 6d 6f 64 65 20 76  61 72 69 61 62 6c 65 20  |..mode variable |
0002aa20  69 6e 64 65 78 2c 20 76  61 6c 75 65 0a 09 8c 65  |index, value...e|
0002aa30  74 63 0a 09 2d 31 20 74  65 72 6d 69 6e 61 74 6f  |tc..-1 terminato|
0002aa40  72 0a 23 6c 69 6e 65 0a  53 65 65 20 61 6c 73 6f  |r.#line.See also|
0002aa50  20 3c 4d 6f 64 65 20 53  70 65 63 69 66 69 65 72  | <Mode Specifier|
0002aa60  20 53 74 72 69 6e 67 73  3d 3e 57 69 6d 70 5f 4d  | Strings=>Wimp_M|
0002aa70  6f 64 65 53 74 72 69 6e  67 3e 0a 00 44 41 54 41  |odeString>..DATA|
0002aa80  0c 02 00 00 4d 6f 64 65  20 53 70 65 63 69 66 69  |....Mode Specifi|
0002aa90  65 72 20 53 74 72 69 6e  67 73 0a 41 20 6d 6f 64  |er Strings.A mod|
0002aaa0  65 20 73 70 65 63 69 66  69 65 72 20 73 74 72 69  |e specifier stri|
0002aab0  6e 67 20 63 61 6e 20 63  6f 6e 74 61 69 6e 20 74  |ng can contain t|
0002aac0  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 65 6c 65  |he following ele|
0002aad0  6d 65 6e 74 73 2c 20 77  69 74 68 20 73 70 61 63  |ments, with spac|
0002aae0  65 20 62 65 74 77 65 65  6e 3a 0a 20 0a 58 6e 6e  |e between:. .Xnn|
0002aaf0  6e 6e 09 58 20 72 65 73  6f 6c 75 74 69 6f 6e 20  |nn.X resolution |
0002ab00  28 6e 6e 6e 6e 20 33 2d  34 20 64 69 67 69 74 73  |(nnnn 3-4 digits|
0002ab10  29 0a 59 6e 6e 6e 6e 09  59 20 72 65 73 6f 6c 75  |).Ynnnn.Y resolu|
0002ab20  74 69 6f 6e 20 28 6e 6e  6e 6e 20 33 2d 34 20 64  |tion (nnnn 3-4 d|
0002ab30  69 67 69 74 73 29 0a 43  63 63 63 09 43 6f 6c 6f  |igits).Cccc.Colo|
0002ab40  75 72 73 20 28 63 63 63  3d 32 2c 31 36 2c 32 35  |urs (ccc=2,16,25|
0002ab50  36 2c 33 32 4b 2c 31 36  4d 29 0a 47 63 63 63 09  |6,32K,16M).Gccc.|
0002ab60  47 72 65 79 73 20 28 63  63 63 3d 31 36 2c 32 35  |Greys (ccc=16,25|
0002ab70  36 29 0a 45 58 6e 09 58  20 65 69 67 65 6e 66 61  |6).EXn.X eigenfa|
0002ab80  63 74 6f 72 20 28 30 2d  33 29 0a 45 59 6e 09 59  |ctor (0-3).EYn.Y|
0002ab90  20 65 69 67 65 6e 66 61  63 74 6f 72 20 28 30 2d  | eigenfactor (0-|
0002aba0  33 29 0a 46 66 66 66 09  46 72 61 6d 65 20 72 61  |3).Ffff.Frame ra|
0002abb0  74 65 20 28 66 66 66 20  32 2d 33 20 64 69 67 69  |te (fff 2-3 digi|
0002abc0  74 73 29 0a 23 6c 69 6e  65 0a 45 78 61 6d 70 6c  |ts).#line.Exampl|
0002abd0  65 73 3a 0a 23 69 6e 64  65 6e 74 20 32 0a 7b 66  |es:.#indent 2.{f|
0002abe0  43 6f 64 65 7d 4d 4f 44  45 20 58 36 34 30 2c 59  |Code}MODE X640,Y|
0002abf0  34 38 30 2c 43 32 35 36  7b 66 7d 0a 09 56 47 41  |480,C256{f}..VGA|
0002ac00  20 69 6e 20 32 35 36 20  63 6f 6c 6f 75 72 73 0a  | in 256 colours.|
0002ac10  7b 66 43 6f 64 65 7d 4d  4f 44 45 20 58 38 30 30  |{fCode}MODE X800|
0002ac20  2c 59 36 30 30 2c 43 33  32 4b 7b 66 7d 0a 09 53  |,Y600,C32K{f}..S|
0002ac30  56 47 41 20 69 6e 20 33  32 37 36 38 20 63 6f 6c  |VGA in 32768 col|
0002ac40  6f 75 72 73 0a 23 69 6e  64 65 6e 74 20 30 0a 23  |ours.#indent 0.#|
0002ac50  6c 69 6e 65 0a 53 65 65  20 61 6c 73 6f 20 3c 4d  |line.See also <M|
0002ac60  6f 64 65 20 53 70 65 63  69 66 69 65 72 20 42 6c  |ode Specifier Bl|
0002ac70  6f 63 6b 73 3d 3e 57 69  6d 70 5f 4d 6f 64 65 53  |ocks=>Wimp_ModeS|
0002ac80  65 6c 65 63 74 3e 2e 0a  44 41 54 41 15 01 00 00  |elect>..DATA....|
0002ac90  57 69 6d 70 5f 52 65 73  69 7a 65 49 63 6f 6e 20  |Wimp_ResizeIcon |
0002aca0  20 28 26 34 30 30 46 43  29 20 28 33 2e 35 29 0a  | (&400FC) (3.5).|
0002acb0  23 50 61 72 65 6e 74 20  57 69 6d 70 5f 0a 3d 3e  |#Parent Wimp_.=>|
0002acc0  09 52 30 20 3d 09 77 69  6e 64 6f 77 20 68 61 6e  |.R0 =.window han|
0002acd0  64 6c 65 0a 09 52 31 20  3d 09 69 63 6f 6e 20 68  |dle..R1 =.icon h|
0002ace0  61 6e 64 6c 65 0a 09 52  32 20 3d 09 78 30 0a 09  |andle..R2 =.x0..|
0002acf0  52 33 20 3d 09 79 30 0a  09 52 34 20 3d 09 78 31  |R3 =.y0..R4 =.x1|
0002ad00  0a 09 52 35 20 3d 09 79  31 0a 3c 3d 09 41 6c 6c  |..R5 =.y1.<=.All|
0002ad10  20 72 65 67 69 73 74 65  72 73 20 70 72 65 73 65  | registers prese|
0002ad20  72 76 65 64 0a 0a 54 68  69 73 20 63 61 6c 6c 20  |rved..This call |
0002ad30  72 65 73 69 7a 65 73 20  74 68 65 20 67 69 76 65  |resizes the give|
0002ad40  6e 20 69 63 6f 6e 20 69  6e 20 74 68 65 20 67 69  |n icon in the gi|
0002ad50  76 65 6e 20 77 69 6e 64  6f 77 20 74 6f 20 74 68  |ven window to th|
0002ad60  65 20 6e 65 77 20 62 6f  75 6e 64 69 6e 67 20 62  |e new bounding b|
0002ad70  6f 78 20 63 6f 6f 72 64  69 6e 61 74 65 73 20 61  |ox coordinates a|
0002ad80  73 20 67 69 76 65 6e 20  69 6e 20 72 65 67 69 73  |s given in regis|
0002ad90  74 65 72 73 20 32 20 74  6f 20 35 2e 0a 00 00 00  |ters 2 to 5.....|
0002ada0  44 41 54 41 37 00 00 00  57 69 6d 70 0a 23 50 61  |DATA7...Wimp.#Pa|
0002adb0  72 65 6e 74 20 21 52 6f  6f 74 0a 23 50 72 65 66  |rent !Root.#Pref|
0002adc0  69 78 20 57 69 6d 70 5f  0a 23 49 6e 63 6c 75 64  |ix Wimp_.#Includ|
0002add0  65 20 73 77 69 73 0a 00  44 41 54 41 a2 04 00 00  |e swis..DATA....|
0002ade0  4d 65 6e 75 20 62 6c 6f  63 6b 0a 23 50 61 72 65  |Menu block.#Pare|
0002adf0  6e 74 20 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |nt Wimp_CreateMe|
0002ae00  6e 75 0a 4f 66 66 73 65  74 09 43 6f 6e 74 65 6e  |nu.Offset.Conten|
0002ae10  74 73 09 09 09 09 4e 6f  72 6d 61 6c 20 76 61 6c  |ts....Normal val|
0002ae20  75 65 0a 23 4c 69 6e 65  0a 30 09 6d 65 6e 75 20  |ue.#Line.0.menu |
0002ae30  74 69 74 6c 65 20 28 69  66 20 30 20 73 74 72 69  |title (if 0 stri|
0002ae40  6e 67 2c 20 6e 6f 20 74  69 74 6c 65 29 0a 31 32  |ng, no title).12|
0002ae50  09 74 69 74 6c 65 20 66  6f 72 65 67 72 6f 75 6e  |.title foregroun|
0002ae60  64 20 61 6e 64 20 66 72  61 6d 65 20 63 6f 6c 6f  |d and frame colo|
0002ae70  75 72 09 37 0a 31 33 09  74 69 74 6c 65 20 62 61  |ur.7.13.title ba|
0002ae80  63 6b 67 72 6f 75 6e 64  20 63 6f 6c 6f 75 72 09  |ckground colour.|
0002ae90  09 09 32 0a 31 34 09 77  6f 72 6b 2d 61 72 65 61  |..2.14.work-area|
0002aea0  20 66 6f 72 65 67 72 6f  75 6e 64 20 63 6f 6c 6f  | foreground colo|
0002aeb0  75 72 09 09 37 0a 31 35  09 77 6f 72 6b 2d 61 72  |ur..7.15.work-ar|
0002aec0  65 61 20 62 61 63 6b 67  72 6f 75 6e 64 20 63 6f  |ea background co|
0002aed0  6c 6f 75 72 09 09 30 0a  31 36 09 77 69 64 74 68  |lour..0.16.width|
0002aee0  20 6f 66 20 6d 65 6e 75  20 69 74 65 6d 73 09 09  | of menu items..|
0002aef0  09 28 63 61 6c 63 75 6c  61 74 65 64 29 0a 32 30  |.(calculated).20|
0002af00  09 68 65 69 67 68 74 20  6f 66 20 6d 65 6e 75 20  |.height of menu |
0002af10  69 74 65 6d 73 09 09 09  34 34 0a 32 34 09 76 65  |items...44.24.ve|
0002af20  72 74 69 63 61 6c 20 67  61 70 20 62 65 74 77 65  |rtical gap betwe|
0002af30  65 6e 20 69 74 65 6d 73  09 09 30 0a 32 38 09 3c  |en items..0.28.<|
0002af40  6d 65 6e 75 20 69 74 65  6d 73 3d 3e 2e 69 74 65  |menu items=>.ite|
0002af50  6d 3e 20 28 32 34 20 62  79 74 65 73 20 65 61 63  |m> (24 bytes eac|
0002af60  68 29 0a 0a 49 66 20 62  69 74 20 38 20 6f 66 20  |h)..If bit 8 of |
0002af70  74 68 65 20 66 6c 61 67  73 20 66 6f 72 20 74 68  |the flags for th|
0002af80  65 20 66 69 72 73 74 20  69 74 65 6d 20 69 73 20  |e first item is |
0002af90  73 65 74 2c 20 74 68 65  6e 20 74 68 65 20 6d 65  |set, then the me|
0002afa0  6e 75 74 69 74 6c 65 20  69 73 20 69 6e 64 69 72  |nutitle is indir|
0002afb0  65 63 74 65 64 2c 20 61  6e 64 20 74 68 65 20 33  |ected, and the 3|
0002afc0  20 66 69 72 73 74 20 77  6f 72 64 73 20 61 72 65  | first words are|
0002afd0  20 61 73 20 66 6f 72 20  61 6e 20 69 6e 64 69 72  | as for an indir|
0002afe0  65 63 74 65 64 20 74 65  78 74 69 63 6f 6e 2e 0a  |ected texticon..|
0002aff0  0a 49 66 20 6d 65 6e 75  74 69 74 6c 65 20 62 65  |.If menutitle be|
0002b000  67 69 6e 73 20 77 69 74  68 20 61 6e 20 22 5c 5c  |gins with an "\\|
0002b010  22 2c 20 74 68 65 6e 20  74 68 69 73 20 6d 65 6e  |", then this men|
0002b020  75 20 61 6e 64 20 61 6c  6c 20 69 74 73 20 73 75  |u and all its su|
0002b030  62 6d 65 6e 75 73 20 61  72 65 20 22 72 65 76 65  |bmenus are "reve|
0002b040  72 73 65 64 22 0a 23 0a  23 53 75 62 70 61 67 65  |rsed".#.#Subpage|
0002b050  20 69 74 65 6d 0a 4d 65  6e 75 20 69 74 65 6d 0a  | item.Menu item.|
0002b060  23 77 72 61 70 20 6f 66  66 0a 4f 66 66 73 65 74  |#wrap off.Offset|
0002b070  09 43 6f 6e 74 65 6e 74  73 0a 23 4c 69 6e 65 0a  |.Contents.#Line.|
0002b080  30 09 3c 69 74 65 6d 20  66 6c 61 67 73 3d 3e 2e  |0.<item flags=>.|
0002b090  66 6c 61 67 73 3e 0a 34  09 73 75 62 6d 65 6e 75  |flags>.4.submenu|
0002b0a0  20 70 6f 69 6e 74 65 72  2c 20 6f 72 20 77 69 6e  | pointer, or win|
0002b0b0  64 6f 77 20 68 61 6e 64  6c 65 20 6f 72 20 2d 31  |dow handle or -1|
0002b0c0  20 69 66 20 6e 6f 74 68  69 6e 67 0a 38 09 3c 69  | if nothing.8.<i|
0002b0d0  63 6f 6e 20 66 6c 61 67  73 3d 3e 77 69 6d 70 5f  |con flags=>wimp_|
0002b0e0  69 63 6f 6e 66 6c 61 67  73 3e 20 28 61 73 20 66  |iconflags> (as f|
0002b0f0  6f 72 20 6e 6f 72 6d 61  6c 20 69 63 6f 6e 29 0a  |or normal icon).|
0002b100  31 32 09 31 32 20 62 79  74 65 73 20 6f 66 20 3c  |12.12 bytes of <|
0002b110  69 63 6f 6e 20 64 61 74  61 3d 3e 77 69 6d 70 5f  |icon data=>wimp_|
0002b120  69 63 6f 6e 64 61 74 61  3e 20 28 61 73 20 66 6f  |icondata> (as fo|
0002b130  72 20 6e 6f 72 6d 61 6c  20 69 63 6f 6e 29 0a 23  |r normal icon).#|
0002b140  0a 23 53 75 62 70 61 67  65 20 66 6c 61 67 73 0a  |.#Subpage flags.|
0002b150  49 74 65 6d 20 66 6c 61  67 73 0a 42 69 74 09 4d  |Item flags.Bit.M|
0002b160  65 61 6e 69 6e 67 0a 23  4c 69 6e 65 0a 30 09 54  |eaning.#Line.0.T|
0002b170  69 63 6b 20 74 6f 20 6c  65 66 74 20 6f 66 20 69  |ick to left of i|
0002b180  74 65 6d 0a 31 09 44 6f  74 74 65 64 20 6c 69 6e  |tem.1.Dotted lin|
0002b190  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 69 74 65 6d  |e following item|
0002b1a0  0a 32 09 49 74 65 6d 20  69 73 20 77 72 69 74 61  |.2.Item is writa|
0002b1b0  62 6c 65 0a 33 09 47 65  6e 65 72 61 74 65 20 3c  |ble.3.Generate <|
0002b1c0  6d 65 73 73 61 67 65 20  77 68 65 6e 20 73 75 62  |message when sub|
0002b1d0  6d 65 6e 75 3d 3e 4d 73  67 5f 34 30 30 43 30 3e  |menu=>Msg_400C0>|
0002b1e0  0a 34 09 53 75 62 6d 65  6e 75 20 63 61 6e 20 62  |.4.Submenu can b|
0002b1f0  65 20 6f 70 65 6e 65 64  20 65 76 65 6e 20 77 68  |e opened even wh|
0002b200  65 6e 20 67 72 65 79 65  64 20 6f 75 74 0a 37 09  |en greyed out.7.|
0002b210  54 68 69 73 20 69 73 20  6c 61 73 74 20 69 74 65  |This is last ite|
0002b220  6d 20 69 6e 20 6d 65 6e  75 0a 38 09 28 4f 6e 6c  |m in menu.8.(Onl|
0002b230  79 20 69 6e 20 66 69 72  73 74 20 6d 65 6e 75 69  |y in first menui|
0002b240  74 65 6d 29 20 4d 65 6e  75 20 74 69 74 6c 65 20  |tem) Menu title |
0002b250  69 73 20 69 6e 64 69 72  65 63 74 65 64 0a 39 2d  |is indirected.9-|
0002b260  33 31 20 20 20 20 52 65  73 65 72 76 65 64 2c 20  |31    Reserved, |
0002b270  6d 75 73 74 20 62 65 20  30 0a 00 00 44 41 54 41  |must be 0...DATA|
0002b280  c0 00 00 00 57 69 6e 64  6f 77 20 6c 6f 63 61 74  |....Window locat|
0002b290  69 6f 6e 73 0a 23 50 61  72 65 6e 74 20 57 69 6d  |ions.#Parent Wim|
0002b2a0  70 5f 57 69 6e 64 6f 77  42 6c 6f 63 6b 0a 56 61  |p_WindowBlock.Va|
0002b2b0  6c 75 65 09 4d 65 61 6e  69 6e 67 0a 23 4c 69 6e  |lue.Meaning.#Lin|
0002b2c0  65 0a 2d 31 09 74 6f 70  20 6f 66 20 74 68 65 20  |e.-1.top of the |
0002b2d0  73 74 61 63 6b 0a 2d 32  09 62 6f 74 74 6f 6d 20  |stack.-2.bottom |
0002b2e0  6f 66 20 74 68 65 20 73  74 61 63 6b 2c 20 62 65  |of the stack, be|
0002b2f0  68 69 6e 64 20 61 6c 6c  20 6f 74 68 65 72 73 0a  |hind all others.|
0002b300  2d 33 09 69 63 6f 6e 69  73 65 64 20 2d 20 6e 6f  |-3.iconised - no|
0002b310  74 20 76 69 73 69 62 6c  65 0a 78 09 62 65 68 69  |t visible.x.behi|
0002b320  6e 64 20 74 68 65 20 77  69 6e 64 6f 77 20 77 69  |nd the window wi|
0002b330  74 68 20 68 61 6e 64 6c  65 20 78 0a 44 41 54 41  |th handle x.DATA|
0002b340  d4 01 00 00 57 69 6d 70  5f 45 78 74 65 6e 64 20  |....Wimp_Extend |
0002b350  20 28 26 34 30 30 46 42  29 20 28 33 2e 38 29 0a  | (&400FB) (3.8).|
0002b360  23 50 61 72 65 6e 74 20  57 69 6d 70 5f 0a 3d 3e  |#Parent Wimp_.=>|
0002b370  09 52 30 20 3d 09 3c 72  65 61 73 6f 6e 20 63 6f  |.R0 =.<reason co|
0002b380  64 65 3d 3e 2e 72 65 61  73 6f 6e 3e 0a 09 52 31  |de=>.reason>..R1|
0002b390  20 3d 09 77 69 6e 64 6f  77 20 71 75 65 72 69 65  | =.window querie|
0002b3a0  64 2c 20 6f 72 20 2d 31  20 66 6f 72 20 74 6f 70  |d, or -1 for top|
0002b3b0  20 6c 65 76 65 6c 0a 3c  3d 09 52 31 20 3d 09 77  | level.<=.R1 =.w|
0002b3c0  69 6e 64 6f 77 20 68 61  6e 64 6c 65 2c 20 6f 72  |indow handle, or|
0002b3d0  20 2d 31 20 66 6f 72 20  6e 6f 6e 65 0a 0a 52 65  | -1 for none..Re|
0002b3e0  74 75 72 6e 73 20 69 6e  66 6f 72 6d 61 74 69 6f  |turns informatio|
0002b3f0  6e 20 61 62 6f 75 74 20  74 68 65 20 77 69 6e 64  |n about the wind|
0002b400  6f 77 20 73 74 61 63 6b  2e 0a 0a 4e 6f 74 65 3a  |ow stack...Note:|
0002b410  20 54 68 69 73 20 63 61  6c 6c 20 69 73 20 6f 6e  | This call is on|
0002b420  6c 79 20 70 72 65 73 65  6e 74 20 66 6f 72 20 57  |ly present for W|
0002b430  69 6e 64 6f 77 4d 61 6e  61 67 65 72 73 20 61 66  |indowManagers af|
0002b440  74 65 72 20 33 2e 38 30  2e 0a 23 53 75 62 70 61  |ter 3.80..#Subpa|
0002b450  67 65 20 72 65 61 73 6f  6e 0a 57 69 6d 70 5f 45  |ge reason.Wimp_E|
0002b460  78 74 65 6e 64 20 72 65  61 73 6f 6e 20 63 6f 64  |xtend reason cod|
0002b470  65 73 0a 52 65 61 73 6f  6e 09 4d 65 61 6e 69 6e  |es.Reason.Meanin|
0002b480  67 0a 23 4c 69 6e 65 0a  30 2d 35 09 49 6e 74 65  |g.#Line.0-5.Inte|
0002b490  72 6e 61 6c 20 75 73 65  20 6f 6e 6c 79 0a 36 09  |rnal use only.6.|
0002b4a0  50 61 72 65 6e 74 20 77  69 6e 64 6f 77 0a 37 09  |Parent window.7.|
0002b4b0  54 6f 70 20 63 68 69 6c  64 20 77 69 6e 64 6f 77  |Top child window|
0002b4c0  0a 38 09 42 6f 74 74 6f  6d 20 63 68 69 6c 64 20  |.8.Bottom child |
0002b4d0  77 69 6e 64 6f 77 0a 39  09 53 69 62 6c 69 6e 67  |window.9.Sibling|
0002b4e0  20 69 6d 6d 65 64 69 61  74 65 6c 79 20 62 65 6c  | immediately bel|
0002b4f0  6f 77 0a 31 30 09 53 69  62 6c 69 6e 67 20 69 6d  |ow.10.Sibling im|
0002b500  6d 65 64 69 61 74 65 6c  79 20 61 62 6f 76 65 0a  |mediately above.|
0002b510  44 41 54 41 98 04 00 00  4e 65 73 74 65 64 20 77  |DATA....Nested w|
0002b520  69 6e 64 6f 77 20 66 6c  61 67 73 0a 23 50 61 72  |indow flags.#Par|
0002b530  65 6e 74 20 57 69 6d 70  5f 4f 70 65 6e 57 69 6e  |ent Wimp_OpenWin|
0002b540  64 6f 77 0a 42 69 74 09  4d 65 61 6e 69 6e 67 0a  |dow.Bit.Meaning.|
0002b550  23 4c 69 6e 65 0a 30 09  73 65 74 20 77 69 6e 64  |#Line.0.set wind|
0002b560  6f 77 20 66 6c 61 67 73  20 66 72 6f 6d 20 62 6c  |ow flags from bl|
0002b570  6f 63 6b 20 66 6f 72 20  63 68 69 6c 64 20 77 69  |ock for child wi|
0002b580  6e 64 6f 77 0a 31 36 2d  31 37 09 3c 63 68 69 6c  |ndow.16-17.<chil|
0002b590  64 27 73 20 6c 65 66 74  3d 3e 2e 76 61 6c 75 65  |d's left=>.value|
0002b5a0  73 3e 0a 31 38 2d 31 39  09 3c 63 68 69 6c 64 27  |s>.18-19.<child'|
0002b5b0  73 20 62 6f 74 74 6f 6d  3d 3e 2e 76 61 6c 75 65  |s bottom=>.value|
0002b5c0  73 3e 0a 32 30 2d 32 31  09 3c 63 68 69 6c 64 27  |s>.20-21.<child'|
0002b5d0  73 20 72 69 67 68 74 3d  3e 2e 76 61 6c 75 65 73  |s right=>.values|
0002b5e0  3e 0a 32 32 2d 32 33 09  3c 63 68 69 6c 64 27 73  |>.22-23.<child's|
0002b5f0  20 74 6f 70 3d 3e 2e 76  61 6c 75 65 73 3e 0a 32  | top=>.values>.2|
0002b600  34 2d 32 35 09 3c 63 68  69 6c 64 27 73 20 78 20  |4-25.<child's x |
0002b610  73 63 72 6f 6c 6c 20 6f  66 66 73 65 74 3d 3e 2e  |scroll offset=>.|
0002b620  76 61 6c 75 65 73 3e 0a  32 36 2d 32 37 09 3c 63  |values>.26-27.<c|
0002b630  68 69 6c 64 27 73 20 79  20 73 63 72 6f 6c 6c 20  |hild's y scroll |
0002b640  6f 66 66 73 65 74 3d 3e  2e 76 61 6c 75 65 73 3e  |offset=>.values>|
0002b650  0a 6f 74 68 65 72 73 09  72 65 73 65 72 76 65 64  |.others.reserved|
0002b660  2c 20 6d 75 73 74 20 62  65 20 7a 65 72 6f 0a 0a  |, must be zero..|
0002b670  23 54 61 62 0a 4e 6f 74  65 3a 09 54 68 69 73 20  |#Tab.Note:.This |
0002b680  63 61 6c 6c 20 69 73 20  6e 6f 77 20 64 72 61 77  |call is now draw|
0002b690  6e 20 66 72 6f 6d 20 41  63 6f 72 6e 27 73 20 64  |n from Acorn's d|
0002b6a0  6f 63 75 6d 65 6e 74 61  74 69 6f 6e 3b 20 69 74  |ocumentation; it|
0002b6b0  20 69 73 20 6e 6f 20 6c  6f 6e 67 65 72 20 64 6f  | is no longer do|
0002b6c0  63 75 6d 65 6e 74 65 64  20 66 72 6f 6d 20 65 78  |cumented from ex|
0002b6d0  70 65 72 69 6d 65 6e 74  61 6c 20 65 76 69 64 65  |perimental evide|
0002b6e0  6e 63 65 2e 0a 0a 23 20  45 78 61 6d 70 6c 65 3a  |nce...# Example:|
0002b6f0  0a 23 20 23 49 6e 64 65  6e 74 20 32 0a 23 20 41  |.# #Indent 2.# A|
0002b700  20 77 69 6e 64 6f 77 20  68 61 73 20 61 20 74 6f  | window has a to|
0002b710  6f 6c 20 62 61 72 20 61  74 20 74 68 65 20 74 6f  |ol bar at the to|
0002b720  70 20 6f 66 20 74 68 65  20 73 63 72 65 65 6e 2c  |p of the screen,|
0002b730  20 61 6e 64 20 61 20 73  74 61 74 75 73 20 62 61  | and a status ba|
0002b740  72 20 61 74 20 74 68 65  20 62 6f 74 74 6f 6d 20  |r at the bottom |
0002b750  6f 66 20 74 68 65 20 77  69 6e 64 6f 77 2e 20 54  |of the window. T|
0002b760  68 65 20 74 6f 6f 6c 20  62 61 72 20 77 6f 75 6c  |he tool bar woul|
0002b770  64 20 75 73 65 20 62 69  74 73 20 31 36 2c 20 31  |d use bits 16, 1|
0002b780  39 2c 20 32 31 20 61 6e  64 20 32 33 2c 20 61 6e  |9, 21 and 23, an|
0002b790  64 20 74 68 65 20 73 74  61 74 75 73 20 62 61 72  |d the status bar|
0002b7a0  20 77 6f 75 6c 64 20 75  73 65 20 62 69 74 73 20  | would use bits |
0002b7b0  31 36 2c 20 31 38 2c 20  32 31 2c 20 61 6e 64 20  |16, 18, 21, and |
0002b7c0  32 32 2e 20 59 6f 75 20  6d 69 67 68 74 20 61 6c  |22. You might al|
0002b7d0  73 6f 20 68 61 76 65 20  74 68 65 20 64 6f 63 75  |so have the docu|
0002b7e0  6d 65 6e 74 20 76 69 65  77 20 61 73 20 61 20 6e  |ment view as a n|
0002b7f0  65 73 74 65 64 20 77 69  6e 64 6f 77 20 77 69 74  |ested window wit|
0002b800  68 20 62 69 74 73 20 31  36 2c 20 31 38 2c 20 32  |h bits 16, 18, 2|
0002b810  31 2c 20 32 33 2c 20 32  34 20 61 6e 64 20 32 36  |1, 23, 24 and 26|
0002b820  20 73 65 74 2e 0a 23 20  23 49 6e 64 65 6e 74 0a  | set..# #Indent.|
0002b830  4e 65 73 74 69 6e 67 20  77 69 6e 64 6f 77 73 20  |Nesting windows |
0002b840  61 6e 64 20 61 74 74 61  63 68 69 6e 67 20 74 68  |and attaching th|
0002b850  65 6d 20 63 6f 72 72 65  63 74 6c 79 20 69 73 20  |em correctly is |
0002b860  6e 6f 74 20 61 6e 20 65  61 73 79 20 74 61 73 6b  |not an easy task|
0002b870  3b 20 61 6e 20 61 6d 6f  75 6e 74 20 6f 66 20 65  |; an amount of e|
0002b880  78 70 65 72 69 6d 65 6e  74 61 74 69 6f 6e 20 77  |xperimentation w|
0002b890  69 6c 6c 20 62 65 20 72  65 71 75 69 72 65 64 20  |ill be required |
0002b8a0  62 65 66 6f 72 65 20 79  6f 75 20 63 61 6e 20 61  |before you can a|
0002b8b0  63 68 69 65 76 65 20 74  68 65 20 64 65 73 69 72  |chieve the desir|
0002b8c0  65 64 20 72 65 73 75 6c  74 2e 0a 23 53 75 62 70  |ed result..#Subp|
0002b8d0  61 67 65 20 76 61 6c 75  65 73 0a 4e 65 73 74 69  |age values.Nesti|
0002b8e0  6e 67 20 76 61 6c 75 65  73 0a 42 69 74 73 09 4d  |ng values.Bits.M|
0002b8f0  65 61 6e 69 6e 67 0a 23  6c 69 6e 65 0a 30 30 09  |eaning.#line.00.|
0002b900  6c 69 6e 6b 65 64 20 74  6f 20 74 68 65 20 77 6f  |linked to the wo|
0002b910  72 6b 20 61 72 65 61 20  6f 66 20 74 68 65 20 70  |rk area of the p|
0002b920  61 72 65 6e 74 0a 30 31  09 6c 69 6e 6b 65 64 20  |arent.01.linked |
0002b930  74 6f 20 74 68 65 20 6c  6f 77 65 72 20 62 6f 75  |to the lower bou|
0002b940  6e 64 20 6f 66 20 74 68  65 20 70 61 72 65 6e 74  |nd of the parent|
0002b950  20 28 6c 65 66 74 20 6f  72 20 62 6f 74 74 6f 6d  | (left or bottom|
0002b960  29 0a 31 30 09 6c 69 6e  6b 65 64 20 74 6f 20 74  |).10.linked to t|
0002b970  68 65 20 75 70 70 65 72  20 62 6f 75 6e 64 20 6f  |he upper bound o|
0002b980  66 20 74 68 65 20 70 61  72 65 6e 74 20 28 74 6f  |f the parent (to|
0002b990  70 20 6f 72 20 72 69 67  68 74 29 0a 31 31 09 72  |p or right).11.r|
0002b9a0  65 73 65 72 76 65 64 0a  44 41 54 41 d5 00 00 00  |eserved.DATA....|
0002b9b0  50 61 6c 65 74 74 65 20  62 6c 6f 63 6b 0a 23 50  |Palette block.#P|
0002b9c0  61 72 65 6e 74 20 57 69  6d 70 5f 53 65 74 50 61  |arent Wimp_SetPa|
0002b9d0  6c 65 74 74 65 0a 30 09  57 69 6d 70 20 63 6f 6c  |lette.0.Wimp col|
0002b9e0  6f 75 72 20 30 0a 34 09  57 69 6d 70 20 63 6f 6c  |our 0.4.Wimp col|
0002b9f0  6f 75 72 20 31 0a 2e 0a  2e 0a 36 30 09 57 69 6d  |our 1.....60.Wim|
0002ba00  70 20 63 6f 6c 6f 75 72  20 31 35 0a 36 34 09 42  |p colour 15.64.B|
0002ba10  6f 72 64 65 72 20 63 6f  6c 6f 75 72 0a 36 38 09  |order colour.68.|
0002ba20  50 6f 69 6e 74 65 72 20  63 6f 6c 6f 75 72 20 30  |Pointer colour 0|
0002ba30  0a 37 32 09 50 6f 69 6e  74 65 72 20 63 6f 6c 6f  |.72.Pointer colo|
0002ba40  75 72 20 31 0a 37 36 09  50 6f 69 6e 74 65 72 20  |ur 1.76.Pointer |
0002ba50  63 6f 6c 6f 75 72 20 32  0a 20 0a 41 6c 6c 20 65  |colour 2. .All e|
0002ba60  6e 74 72 69 65 73 20 68  61 76 65 20 66 6f 72 6d  |ntries have form|
0002ba70  61 74 20 26 42 42 47 47  52 52 30 30 0a 00 00 00  |at &BBGGRR00....|
0002ba80  44 41 54 41 14 02 00 00  57 69 6d 70 5f 43 6c 6f  |DATA....Wimp_Clo|
0002ba90  73 65 57 69 6e 64 6f 77  20 20 28 26 34 30 30 43  |seWindow  (&400C|
0002baa0  36 29 0a 23 50 61 72 65  6e 74 20 57 69 6d 70 5f  |6).#Parent Wimp_|
0002bab0  0a 3d 3e 09 52 31 20 3d  09 70 6f 69 6e 74 65 72  |.=>.R1 =.pointer|
0002bac0  20 74 6f 20 62 6c 6f 63  6b 20 3a 0a 09 20 09 20  | to block :.. . |
0002bad0  20 30 20 20 57 69 6e 64  6f 77 20 68 61 6e 64 6c  | 0  Window handl|
0002bae0  65 0a 0a 54 68 69 73 20  63 61 6c 6c 20 72 65 6d  |e..This call rem|
0002baf0  6f 76 65 73 20 74 68 65  20 77 69 6e 64 6f 77 20  |oves the window |
0002bb00  66 72 6f 6d 20 74 68 65  20 6c 69 73 74 20 6f 66  |from the list of|
0002bb10  20 61 63 74 69 76 65 20  77 69 6e 64 6f 77 73 2e  | active windows.|
0002bb20  0a 0a 54 68 65 20 57 69  6d 70 20 77 69 6c 6c 20  |..The Wimp will |
0002bb30  69 73 73 75 65 20 61 6e  79 20 6e 65 63 65 73 73  |issue any necess|
0002bb40  61 72 79 20 72 65 64 72  61 77 20 6d 65 73 73 61  |ary redraw messa|
0002bb50  67 65 73 2e 20 54 68 65  20 6e 65 73 74 65 64 20  |ges. The nested |
0002bb60  76 65 72 73 69 6f 6e 20  69 73 20 73 6c 69 67 68  |version is sligh|
0002bb70  74 6c 79 20 3c 64 69 66  66 65 72 65 6e 74 3d 3e  |tly <different=>|
0002bb80  2e 6e 65 73 74 65 64 3e  2e 0a 23 73 75 62 70 61  |.nested>..#subpa|
0002bb90  67 65 20 6e 65 73 74 65  64 0a 57 69 6d 70 5f 43  |ge nested.Wimp_C|
0002bba0  6c 6f 73 65 57 69 6e 64  6f 77 20 28 6e 65 73 74  |loseWindow (nest|
0002bbb0  65 64 20 76 65 72 73 69  6f 6e 29 0a 3d 3e 09 52  |ed version).=>.R|
0002bbc0  31 20 3d 09 70 6f 69 6e  74 65 72 20 74 6f 20 62  |1 =.pointer to b|
0002bbd0  6c 6f 63 6b 20 61 73 20  3c 57 69 6d 70 5f 43 6c  |lock as <Wimp_Cl|
0002bbe0  6f 73 65 57 69 6e 64 6f  77 3e 0a 09 52 32 20 3d  |oseWindow>..R2 =|
0002bbf0  09 22 54 41 53 4b 22 20  28 26 34 42 35 33 34 31  |."TASK" (&4B5341|
0002bc00  35 34 29 0a 09 52 33 20  3d 09 77 69 6e 64 6f 77  |54)..R3 =.window|
0002bc10  20 68 61 6e 64 6c 65 20  6f 66 20 70 61 72 65 6e  | handle of paren|
0002bc20  74 0a 0a 54 68 69 73 20  63 61 6c 6c 20 63 6c 6f  |t..This call clo|
0002bc30  73 65 73 20 61 20 77 69  6e 64 6f 77 20 77 69 74  |ses a window wit|
0002bc40  68 69 6e 20 61 6e 6f 74  68 65 72 20 77 69 6e 64  |hin another wind|
0002bc50  6f 77 2e 20 4f 6e 6c 79  20 70 72 65 73 65 6e 74  |ow. Only present|
0002bc60  20 6f 6e 20 76 65 72 73  69 6f 6e 73 20 6f 66 20  | on versions of |
0002bc70  74 68 65 20 77 69 6e 64  6f 77 20 6d 61 6e 61 67  |the window manag|
0002bc80  65 72 20 6c 61 74 65 72  20 74 68 61 6e 20 33 2e  |er later than 3.|
0002bc90  38 32 2e 0a 44 41 54 41  82 03 00 00 57 69 6d 70  |82..DATA....Wimp|
0002bca0  5f 4c 6f 61 64 54 65 6d  70 6c 61 74 65 20 20 28  |_LoadTemplate  (|
0002bcb0  26 34 30 30 44 42 29 0a  23 50 61 72 65 6e 74 20  |&400DB).#Parent |
0002bcc0  57 69 6d 70 5f 0a 3d 3e  09 52 31 20 3d 09 70 6f  |Wimp_.=>.R1 =.po|
0002bcd0  69 6e 74 65 72 20 74 6f  20 75 73 65 72 62 75 66  |inter to userbuf|
0002bce0  66 65 72 20 66 6f 72 20  74 65 6d 70 6c 61 74 65  |fer for template|
0002bcf0  2c 20 6f 72 20 30 20 74  6f 20 66 69 6e 64 20 72  |, or 0 to find r|
0002bd00  65 71 75 69 72 65 64 20  62 75 66 66 65 72 73 69  |equired buffersi|
0002bd10  7a 65 0a 09 52 32 20 3d  09 70 6f 69 6e 74 65 72  |ze..R2 =.pointer|
0002bd20  20 74 6f 20 77 6f 72 6b  73 70 61 63 65 20 66 6f  | to workspace fo|
0002bd30  72 20 69 6e 64 69 72 65  63 74 65 64 20 64 61 74  |r indirected dat|
0002bd40  61 2e 0a 09 52 33 20 3d  09 70 6f 69 6e 74 65 72  |a...R3 =.pointer|
0002bd50  20 74 6f 20 65 6e 64 20  6f 66 20 77 6f 72 6b 73  | to end of works|
0002bd60  70 61 63 65 20 28 2b 31  3f 29 0a 09 52 34 20 3d  |pace (+1?)..R4 =|
0002bd70  09 70 6f 69 6e 74 65 72  20 74 6f 20 32 35 36 2d  |.pointer to 256-|
0002bd80  62 79 74 65 20 61 72 72  61 79 20 66 6f 72 20 66  |byte array for f|
0002bd90  6f 6e 74 20 72 65 66 2c  20 6f 72 20 2d 31 20 66  |ont ref, or -1 f|
0002bda0  6f 72 20 6e 6f 20 66 6f  6e 74 73 0a 09 52 35 20  |or no fonts..R5 |
0002bdb0  3d 09 70 6f 69 6e 74 65  72 20 74 6f 20 28 77 69  |=.pointer to (wi|
0002bdc0  6c 64 63 61 72 64 65 64  29 20 6e 61 6d 65 20 74  |ldcarded) name t|
0002bdd0  6f 20 6d 61 74 63 68 20  28 33 20 61 6c 69 67 6e  |o match (3 align|
0002bde0  65 64 20 77 6f 72 64 73  29 0a 09 52 36 20 3d 09  |ed words)..R6 =.|
0002bdf0  70 6f 73 69 74 69 6f 6e  20 74 6f 20 73 65 61 72  |position to sear|
0002be00  63 68 20 66 72 6f 6d 2c  20 6f 72 20 30 20 66 6f  |ch from, or 0 fo|
0002be10  72 20 74 68 65 20 66 69  72 73 74 20 63 61 6c 6c  |r the first call|
0002be20  0a 0a 3c 3d 09 52 30 20  63 6f 72 72 75 70 74 0a  |..<=.R0 corrupt.|
0002be30  09 52 32 20 3d 09 70 6f  69 6e 74 65 72 20 74 6f  |.R2 =.pointer to|
0002be40  20 72 65 6d 61 69 6e 69  6e 67 20 77 6f 72 6b 73  | remaining works|
0002be50  70 61 63 65 0a 09 52 35  09 69 73 20 6f 76 65 72  |pace..R5.is over|
0002be60  77 72 69 74 74 65 6e 20  77 69 74 68 20 61 63 74  |written with act|
0002be70  75 61 6c 20 6e 61 6d 65  0a 09 52 36 20 3d 09 70  |ual name..R6 =.p|
0002be80  6f 73 20 6f 66 20 6e 65  78 74 20 65 6e 74 72 79  |os of next entry|
0002be90  2c 20 6f 72 20 30 20 69  66 20 74 65 6d 70 6c 61  |, or 0 if templa|
0002bea0  74 65 20 6e 6f 74 20 66  6f 75 6e 64 0a 0a 69 66  |te not found..if|
0002beb0  20 52 31 20 77 61 73 20  30 2c 20 74 68 65 6e 20  | R1 was 0, then |
0002bec0  3a 0a 09 52 31 20 3d 09  72 65 71 75 69 72 65 64  |:..R1 =.required|
0002bed0  20 73 69 7a 65 20 66 6f  72 20 77 69 6e 64 6f 77  | size for window|
0002bee0  20 61 6e 64 20 69 63 6f  6e 73 0a 09 52 32 20 3d  | and icons..R2 =|
0002bef0  09 72 65 71 75 69 72 65  64 20 73 69 7a 65 20 66  |.required size f|
0002bf00  6f 72 20 69 6e 64 69 72  65 63 74 65 64 20 64 61  |or indirected da|
0002bf10  74 61 0a 0a 4e 6f 74 65  20 74 68 61 74 20 52 35  |ta..Note that R5|
0002bf20  20 2a 6d 75 73 74 2a 20  70 6f 69 6e 74 20 74 6f  | *must* point to|
0002bf30  20 61 20 77 6f 72 64 20  61 6c 69 67 6e 65 64 20  | a word aligned |
0002bf40  31 32 20 62 79 74 65 20  62 75 66 66 65 72 2c 20  |12 byte buffer, |
0002bf50  77 68 69 63 68 20 69 73  20 75 73 65 64 20 61 73  |which is used as|
0002bf60  20 77 6f 72 6b 73 70 61  63 65 20 62 79 20 74 68  | workspace by th|
0002bf70  65 20 63 61 6c 6c 2e 20  42 41 53 49 43 20 70 72  |e call. BASIC pr|
0002bf80  6f 67 72 61 6d 6d 65 72  73 20 63 6f 6e 76 65 72  |ogrammers conver|
0002bf90  74 69 6e 67 20 74 6f 20  43 20 6f 72 20 41 73 73  |ting to C or Ass|
0002bfa0  65 6d 62 6c 65 72 20 73  68 6f 75 6c 64 20 62 65  |embler should be|
0002bfb0  20 63 61 72 65 66 75 6c  20 74 6f 20 73 65 74 20  | careful to set |
0002bfc0  52 36 2e 0a 0a 45 72 72  6f 72 73 20 77 69 6c 6c  |R6...Errors will|
0002bfd0  20 6e 6f 74 20 62 65 20  72 65 74 75 72 6e 65 64  | not be returned|
0002bfe0  20 69 66 20 74 68 65 20  74 65 6d 70 6c 61 74 65  | if the template|
0002bff0  20 69 73 20 6e 6f 74 20  66 6f 75 6e 64 2e 20 49  | is not found. I|
0002c000  6e 73 74 65 61 64 20 52  36 20 69 73 20 73 65 74  |nstead R6 is set|
0002c010  20 74 6f 20 30 2e 00 00  44 41 54 41 6c 01 00 00  | to 0...DATAl...|
0002c020  57 69 6d 70 20 53 57 49  73 0a 23 50 61 72 65 6e  |Wimp SWIs.#Paren|
0002c030  74 20 53 74 72 6f 6e 67  48 65 6c 70 3a 21 4d 65  |t StrongHelp:!Me|
0002c040  6e 75 0a 23 50 6f 73 74  66 69 78 20 5f 0a 23 41  |nu.#Postfix _.#A|
0002c050  6c 69 67 6e 20 43 65 6e  74 72 65 3b 57 72 61 70  |lign Centre;Wrap|
0002c060  20 6f 66 66 3b 49 6e 64  65 6e 74 20 32 0a 23 54  | off;Indent 2.#T|
0002c070  61 62 6c 65 20 43 6f 6c  75 6d 6e 73 20 33 0a 3c  |able Columns 3.<|
0002c080  57 69 6d 70 3d 3e 57 69  6d 70 5f 21 52 6f 6f 74  |Wimp=>Wimp_!Root|
0002c090  53 57 49 73 3e 0a 3c 46  69 6c 74 65 72 4d 61 6e  |SWIs>.<FilterMan|
0002c0a0  61 67 65 72 3d 3e 46 69  6c 74 65 72 5f 3e 0a 3c  |ager=>Filter_>.<|
0002c0b0  54 61 73 6b 4d 61 6e 61  67 65 72 3e 0a 3c 54 61  |TaskManager>.<Ta|
0002c0c0  73 6b 57 69 6e 64 6f 77  3e 0a 3c 44 72 61 67 41  |skWindow>.<DragA|
0002c0d0  53 70 72 69 74 65 3e 0a  3c 46 69 6c 65 72 41 63  |Sprite>.<FilerAc|
0002c0e0  74 69 6f 6e 3e 0a 3c 46  72 65 65 3e 0a 3c 43 6f  |tion>.<Free>.<Co|
0002c0f0  6c 6f 75 72 50 69 63 6b  65 72 3e 0a 3c 44 44 45  |lourPicker>.<DDE|
0002c100  55 74 69 6c 73 3e 0a 23  45 6e 64 54 61 62 6c 65  |Utils>.#EndTable|
0002c110  0a 23 20 3c 52 65 64 72  61 77 4d 61 6e 61 67 65  |.# <RedrawManage|
0002c120  72 3d 3e 52 65 64 72 61  77 5f 3e 0a 23 49 6e 64  |r=>Redraw_>.#Ind|
0002c130  65 6e 74 3b 4c 69 6e 65  0a 23 69 6e 63 6c 75 64  |ent;Line.#includ|
0002c140  65 20 74 6f 70 69 63 73  0a 23 4c 69 6e 65 0a 23  |e topics.#Line.#|
0002c150  61 6c 69 67 6e 20 63 65  6e 74 72 65 0a 7b 2f 7d  |align centre.{/}|
0002c160  3c 57 69 6d 70 20 53 57  49 73 20 6d 61 6e 75 61  |<Wimp SWIs manua|
0002c170  6c 3d 3e 61 62 6f 75 74  3e 2c 20 76 31 2e 30 34  |l=>about>, v1.04|
0002c180  7b 2f 7d 0a 44 41 54 41  e8 0a 00 00 57 69 6d 70  |{/}.DATA....Wimp|
0002c190  20 53 57 49 73 20 6d 61  6e 75 61 6c 0a 23 41 6c  | SWIs manual.#Al|
0002c1a0  69 67 6e 20 43 65 6e 74  72 65 0a 7b 66 68 33 7d  |ign Centre.{fh3}|
0002c1b0  57 69 6d 70 20 53 57 49  73 20 6d 61 6e 75 61 6c  |Wimp SWIs manual|
0002c1c0  7b 66 7d 0a 23 4c 69 6e  65 0a 23 41 6c 69 67 6e  |{f}.#Line.#Align|
0002c1d0  20 4c 65 66 74 0a 54 68  69 73 20 6d 61 6e 75 61  | Left.This manua|
0002c1e0  6c 20 69 73 20 70 61 72  74 20 6f 66 20 61 20 63  |l is part of a c|
0002c1f0  6f 6c 6c 65 63 74 69 6f  6e 20 63 6f 6d 70 72 69  |ollection compri|
0002c200  73 69 6e 67 20 74 68 65  20 6d 61 69 6e 20 70 75  |sing the main pu|
0002c210  62 6c 69 63 20 64 6f 6d  61 69 6e 20 70 72 6f 67  |blic domain prog|
0002c220  72 61 6d 6d 69 6e 67 20  72 65 66 65 72 65 6e 63  |ramming referenc|
0002c230  65 2e 20 54 68 65 20 6f  74 68 65 72 20 6d 61 6e  |e. The other man|
0002c240  75 61 6c 73 20 69 6e 20  74 68 65 20 73 65 72 69  |uals in the seri|
0002c250  65 73 20 61 72 65 20 3a  0a 23 49 6e 64 65 6e 74  |es are :.#Indent|
0002c260  20 32 0a 23 50 6f 73 74  66 69 78 20 3a 21 52 6f  | 2.#Postfix :!Ro|
0002c270  6f 74 0a 3c 4f 53 3e 09  09 54 68 65 20 62 61 73  |ot.<OS>..The bas|
0002c280  65 20 6f 70 65 72 61 74  69 6e 67 20 73 79 73 74  |e operating syst|
0002c290  65 6d 20 73 74 75 66 66  0a 3c 57 69 6d 70 3e 09  |em stuff.<Wimp>.|
0002c2a0  09 54 68 65 20 64 65 73  6b 74 6f 70 20 70 61 72  |.The desktop par|
0002c2b0  74 20 6f 66 20 74 68 65  20 6f 70 65 72 61 74 69  |t of the operati|
0002c2c0  6e 67 20 73 79 73 74 65  6d 0a 3c 49 6e 65 74 53  |ng system.<InetS|
0002c2d0  57 49 73 3e 09 49 6e 74  65 72 6e 65 74 20 62 61  |WIs>.Internet ba|
0002c2e0  73 65 64 20 53 57 49 73  0a 3c 49 6e 65 74 53 6f  |sed SWIs.<InetSo|
0002c2f0  63 6b 65 74 3e 09 49 6e  74 65 72 6e 65 74 20 73  |cket>.Internet s|
0002c300  6f 63 6b 65 74 20 63 61  6c 6c 73 0a 3c 4d 69 73  |ocket calls.<Mis|
0002c310  63 53 57 49 73 3e 09 4d  69 73 63 65 6c 6c 61 6e  |cSWIs>.Miscellan|
0002c320  65 6f 75 73 20 53 57 49  73 0a 3c 56 44 55 3e 09  |eous SWIs.<VDU>.|
0002c330  09 56 44 55 20 63 6f 6d  6d 61 6e 64 73 0a 3c 54  |.VDU commands.<T|
0002c340  6f 6f 6c 62 6f 78 3e 09  54 6f 6f 6c 62 6f 78 20  |oolbox>.Toolbox |
0002c350  28 62 79 20 4e 69 65 6c  20 42 69 6e 67 68 61 6d  |(by Niel Bingham|
0002c360  29 0a 23 49 6e 64 65 6e  74 0a 0a 46 6f 72 20 63  |).#Indent..For c|
0002c370  6f 6d 6d 65 6e 74 73 2c  20 73 75 67 67 65 73 74  |omments, suggest|
0002c380  69 6f 6e 73 20 61 6e 64  20 73 75 62 6d 69 73 73  |ions and submiss|
0002c390  69 6f 6e 73 20 66 6f 72  20 74 68 65 73 65 2c 20  |ions for these, |
0002c3a0  70 6c 65 61 73 65 20 6d  61 69 6c 20 4a 75 73 74  |please mail Just|
0002c3b0  69 6e 20 46 6c 65 74 63  68 65 72 20 3c 5c 3c 67  |in Fletcher <\<g|
0002c3c0  65 72 70 68 40 69 6e 6e  6f 63 65 6e 74 2e 63 6f  |erph@innocent.co|
0002c3d0  6d 5c 3e 3d 3e 23 55 52  4c 20 6d 61 69 6c 74 6f  |m\>=>#URL mailto|
0002c3e0  3a 67 65 72 70 68 40 69  6e 6e 6f 63 65 6e 74 2e  |:gerph@innocent.|
0002c3f0  63 6f 6d 3e 20 77 68 6f  20 69 73 20 63 75 72 72  |com> who is curr|
0002c400  65 6e 74 6c 79 20 6d 6f  64 65 72 61 74 69 6e 67  |ently moderating|
0002c410  20 74 68 65 20 63 6f 6c  6c 65 63 74 69 6f 6e 2e  | the collection.|
0002c420  20 54 68 65 20 70 72 69  6d 61 72 79 20 6c 6f 63  | The primary loc|
0002c430  61 74 69 6f 6e 20 66 6f  72 20 74 68 65 73 65 20  |ation for these |
0002c440  6d 61 6e 75 61 6c 73 20  77 69 6c 6c 20 62 65 20  |manuals will be |
0002c450  3c 68 74 74 70 3a 2f 2f  66 72 65 65 6e 65 74 2e  |<http://freenet.|
0002c460  62 61 72 6e 65 74 2e 61  63 2e 75 6b 2f 6d 61 6e  |barnet.ac.uk/man|
0002c470  75 61 6c 73 2f 3d 3e 23  55 52 4c 20 68 74 74 70  |uals/=>#URL http|
0002c480  3a 2f 2f 66 72 65 65 6e  65 74 2e 62 61 72 6e 65  |://freenet.barne|
0002c490  74 2e 61 63 2e 75 6b 2f  6d 61 6e 75 61 6c 73 2f  |t.ac.uk/manuals/|
0002c4a0  3e 2e 0a 0a 3c 54 68 69  73 20 70 61 67 65 3d 3e  |>...<This page=>|
0002c4b0  2e 68 69 73 74 31 30 34  3e 20 67 69 76 65 73 20  |.hist104> gives |
0002c4c0  68 69 73 74 6f 72 79 20  61 6e 64 20 63 72 65 64  |history and cred|
0002c4d0  69 74 73 2e 0a 23 0a 23  53 75 62 70 61 67 65 20  |its..#.#Subpage |
0002c4e0  68 69 73 74 31 30 30 0a  48 69 73 74 6f 72 79 20  |hist100.History |
0002c4f0  66 6f 72 20 57 69 6d 70  20 76 31 2e 30 30 0a 23  |for Wimp v1.00.#|
0002c500  41 6c 69 67 6e 20 52 69  67 68 74 0a 7b 2f 7d 32  |Align Right.{/}2|
0002c510  32 20 53 65 70 20 31 39  39 37 7b 2f 7d 0a 23 41  |2 Sep 1997{/}.#A|
0002c520  6c 69 67 6e 20 4c 65 66  74 0a 8f 09 46 69 72 73  |lign Left...Firs|
0002c530  74 20 72 65 6c 65 61 73  65 0a 0a 3c 4e 65 78 74  |t release..<Next|
0002c540  20 68 69 73 74 6f 72 79  3d 3e 2e 68 69 73 74 31  | history=>.hist1|
0002c550  30 31 3e 0a 23 53 75 62  70 61 67 65 20 68 69 73  |01>.#Subpage his|
0002c560  74 31 30 31 0a 48 69 73  74 6f 72 79 20 66 6f 72  |t101.History for|
0002c570  20 57 69 6d 70 20 76 31  2e 30 31 0a 23 41 6c 69  | Wimp v1.01.#Ali|
0002c580  67 6e 20 52 69 67 68 74  0a 7b 2f 7d 31 30 20 4f  |gn Right.{/}10 O|
0002c590  63 74 20 31 39 39 37 7b  2f 7d 0a 23 41 6c 69 67  |ct 1997{/}.#Alig|
0002c5a0  6e 20 4c 65 66 74 0a 8f  09 52 65 2d 6f 72 67 61  |n Left...Re-orga|
0002c5b0  6e 69 73 65 64 20 74 68  65 20 21 52 6f 6f 74 20  |nised the !Root |
0002c5c0  70 61 67 65 20 74 6f 20  74 72 79 20 74 6f 20 6d  |page to try to m|
0002c5d0  61 6b 65 20 61 20 6c 69  74 74 6c 65 20 6d 6f 72  |ake a little mor|
0002c5e0  65 20 6c 6f 67 69 63 61  6c 2e 0a 8f 09 55 70 64  |e logical....Upd|
0002c5f0  61 74 65 64 20 27 73 74  79 6c 65 27 20 6f 66 20  |ated 'style' of |
0002c600  6d 65 73 73 61 67 65 20  65 6e 74 72 69 65 73 3b  |message entries;|
0002c610  20 73 68 6f 75 6c 64 20  61 6c 6c 20 69 6e 63 6c  | should all incl|
0002c620  75 64 65 20 70 61 72 65  6e 74 20 61 6e 64 20 75  |ude parent and u|
0002c630  73 65 20 2b 78 5c 3c 74  61 62 3e 20 74 6f 20 69  |se +x\<tab> to i|
0002c640  6e 64 69 63 61 74 65 20  74 68 65 20 70 61 72 61  |ndicate the para|
0002c650  6d 65 74 65 72 20 62 6c  6f 63 6b 2e 0a 0a 23 54  |meter block...#T|
0002c660  61 62 0a 3c 50 72 65 76  69 6f 75 73 20 68 69 73  |ab.<Previous his|
0002c670  74 6f 72 79 3d 3e 2e 68  69 73 74 31 30 30 3e 09  |tory=>.hist100>.|
0002c680  3c 4e 65 78 74 20 68 69  73 74 6f 72 79 3d 3e 2e  |<Next history=>.|
0002c690  68 69 73 74 31 30 32 3e  0a 23 53 75 62 70 61 67  |hist102>.#Subpag|
0002c6a0  65 20 68 69 73 74 31 30  32 0a 48 69 73 74 6f 72  |e hist102.Histor|
0002c6b0  79 20 66 6f 72 20 57 69  6d 70 20 76 31 2e 30 32  |y for Wimp v1.02|
0002c6c0  0a 23 41 6c 69 67 6e 20  52 69 67 68 74 0a 7b 2f  |.#Align Right.{/|
0002c6d0  7d 31 35 20 4e 6f 76 20  31 39 39 37 7b 2f 7d 0a  |}15 Nov 1997{/}.|
0002c6e0  23 41 6c 69 67 6e 20 4c  65 66 74 0a 8f 09 55 70  |#Align Left...Up|
0002c6f0  64 61 74 65 73 20 74 6f  20 6d 69 6e 6f 72 20 73  |dates to minor s|
0002c700  65 63 74 69 6f 6e 73 20  28 62 75 67 20 66 69 78  |ections (bug fix|
0002c710  65 73 20 61 66 74 65 72  20 70 72 65 2d 72 65 6c  |es after pre-rel|
0002c720  65 61 73 65 20 74 6f 20  49 52 43 27 65 72 73 29  |ease to IRC'ers)|
0002c730  0a 8f 09 44 65 76 69 63  65 20 43 6c 61 69 6d 2c  |...Device Claim,|
0002c740  20 43 6c 61 69 6d 45 6e  74 69 74 79 20 61 6e 64  | ClaimEntity and|
0002c750  20 54 61 73 6b 53 74 61  72 74 65 64 20 64 6f 63  | TaskStarted doc|
0002c760  75 6d 65 6e 74 65 64 20  28 44 61 76 65 20 54 68  |umented (Dave Th|
0002c770  6f 6d 61 73 29 0a 0a 23  54 61 62 0a 3c 50 72 65  |omas)..#Tab.<Pre|
0002c780  76 69 6f 75 73 20 68 69  73 74 6f 72 79 3d 3e 2e  |vious history=>.|
0002c790  68 69 73 74 31 30 31 3e  09 3c 4e 65 78 74 20 68  |hist101>.<Next h|
0002c7a0  69 73 74 6f 72 79 3d 3e  2e 68 69 73 74 31 30 33  |istory=>.hist103|
0002c7b0  3e 0a 23 53 75 62 70 61  67 65 20 68 69 73 74 31  |>.#Subpage hist1|
0002c7c0  30 33 0a 48 69 73 74 6f  72 79 20 66 6f 72 20 57  |03.History for W|
0002c7d0  69 6d 70 20 76 31 2e 30  33 0a 23 41 6c 69 67 6e  |imp v1.03.#Align|
0002c7e0  20 52 69 67 68 74 0a 7b  2f 7d 30 37 20 4a 61 6e  | Right.{/}07 Jan|
0002c7f0  20 31 39 39 38 20 2d 20  31 35 20 4a 61 6e 20 31  | 1998 - 15 Jan 1|
0002c800  39 39 38 7b 2f 7d 0a 23  41 6c 69 67 6e 20 4c 65  |998{/}.#Align Le|
0002c810  66 74 0a 8f 09 44 44 45  55 74 69 6c 73 20 6d 6f  |ft...DDEUtils mo|
0002c820  76 65 64 20 68 65 72 65  20 66 72 6f 6d 20 4d 69  |ved here from Mi|
0002c830  73 63 53 57 49 73 3b 20  73 65 65 6d 73 20 6d 6f  |scSWIs; seems mo|
0002c840  72 65 20 6c 6f 67 69 63  61 6c 20 74 6f 20 6d 65  |re logical to me|
0002c850  0a 8f 09 55 52 49 20 6d  6f 76 65 64 20 74 6f 20  |...URI moved to |
0002c860  49 6e 65 74 53 57 49 73  20 66 72 6f 6d 20 68 65  |InetSWIs from he|
0002c870  72 65 3b 20 61 74 74 65  6d 70 74 69 6e 67 20 74  |re; attempting t|
0002c880  6f 20 6d 61 6b 65 20 74  68 69 6e 67 73 20 6d 6f  |o make things mo|
0002c890  72 65 20 72 65 6c 65 76  61 6e 74 2e 0a 8f 09 57  |re relevant....W|
0002c8a0  69 6d 70 5f 47 65 74 4d  65 6e 75 53 74 61 74 65  |imp_GetMenuState|
0002c8b0  20 75 70 64 61 74 65 64  20 28 44 61 76 69 64 20  | updated (David |
0002c8c0  4d 63 43 6f 72 6d 61 63  6b 29 0a 8f 09 50 6c 75  |McCormack)...Plu|
0002c8d0  67 49 6e 20 70 72 6f 74  6f 63 6f 6c 20 64 6f 63  |gIn protocol doc|
0002c8e0  75 6d 65 6e 74 61 74 69  6f 6e 20 28 44 61 76 65  |umentation (Dave|
0002c8f0  20 54 68 6f 6d 61 73 3b  20 63 6c 61 6e 20 6e 65  | Thomas; clan ne|
0002c900  77 73 6c 65 74 74 65 72  29 0a 0a 3c 50 72 65 76  |wsletter)..<Prev|
0002c910  69 6f 75 73 20 68 69 73  74 6f 72 79 3d 3e 2e 68  |ious history=>.h|
0002c920  69 73 74 31 30 32 3e 20  3c 4e 65 78 74 20 68 69  |ist102> <Next hi|
0002c930  73 74 6f 72 79 3d 3e 2e  68 69 73 74 31 30 34 3e  |story=>.hist104>|
0002c940  0a 23 53 75 62 70 61 67  65 20 68 69 73 74 31 30  |.#Subpage hist10|
0002c950  34 0a 48 69 73 74 6f 72  79 20 66 6f 72 20 57 69  |4.History for Wi|
0002c960  6d 70 20 76 31 2e 30 34  0a 23 41 6c 69 67 6e 20  |mp v1.04.#Align |
0002c970  52 69 67 68 74 0a 7b 2f  7d 32 32 20 4a 61 6e 20  |Right.{/}22 Jan |
0002c980  31 39 39 38 2d 32 32 20  4d 61 72 20 31 39 39 38  |1998-22 Mar 1998|
0002c990  7b 2f 7d 0a 23 41 6c 69  67 6e 20 4c 65 66 74 0a  |{/}.#Align Left.|
0002c9a0  8f 09 57 69 6d 70 5f 53  65 74 46 6f 6e 74 43 6f  |..Wimp_SetFontCo|
0002c9b0  6c 6f 75 72 20 61 6e 64  20 6f 74 68 65 72 73 20  |lour and others |
0002c9c0  63 68 61 6e 67 65 64 20  28 4e 69 63 68 6f 6c 61  |changed (Nichola|
0002c9d0  73 20 43 6c 61 72 6b 29  0a 8f 09 50 6c 75 67 69  |s Clark)...Plugi|
0002c9e0  6e 20 70 72 6f 74 6f 63  6f 6c 20 27 73 74 72 69  |n protocol 'stri|
0002c9f0  6e 67 5f 76 61 6c 75 65  27 20 61 6e 64 20 6f 74  |ng_value' and ot|
0002ca00  68 65 72 73 20 74 69 64  69 65 64 20 75 70 2e 0a  |hers tidied up..|
0002ca10  8f 09 4e 65 73 74 65 64  20 77 69 6e 64 6f 77 20  |..Nested window |
0002ca20  6d 61 6e 61 67 65 72 20  63 61 6c 6c 73 20 75 70  |manager calls up|
0002ca30  64 61 74 65 64 20 77 69  74 68 20 64 6f 63 75 6d  |dated with docum|
0002ca40  65 6e 74 61 74 69 6f 6e  20 66 72 6f 6d 20 74 68  |entation from th|
0002ca50  65 20 41 63 6f 72 6e 20  73 69 74 65 2e 0a 8f 09  |e Acorn site....|
0002ca60  44 44 45 55 74 69 6c 73  20 53 57 49 73 20 66 69  |DDEUtils SWIs fi|
0002ca70  6e 61 6c 6c 79 20 61 64  64 65 64 20 28 21 29 0a  |nally added (!).|
0002ca80  8f 09 4d 69 73 63 65 6c  6c 61 6e 65 6f 75 73 20  |..Miscellaneous |
0002ca90  66 69 78 65 73 20 66 6f  72 20 6e 65 77 20 63 61  |fixes for new ca|
0002caa0  6c 6c 73 0a 8f 09 55 70  64 61 74 65 73 20 74 6f  |lls...Updates to|
0002cab0  20 44 44 45 55 74 69 6c  73 20 28 4e 43 29 2c 20  | DDEUtils (NC), |
0002cac0  6f 74 68 65 72 20 6d 69  6e 6f 72 20 63 68 61 6e  |other minor chan|
0002cad0  67 65 73 0a 8f 09 55 70  64 61 74 65 73 20 74 6f  |ges...Updates to|
0002cae0  20 74 68 65 20 46 69 6c  74 65 72 4d 61 6e 61 67  | the FilterManag|
0002caf0  65 72 20 63 61 6c 6c 73  20 66 6f 72 20 31 2e 31  |er calls for 1.1|
0002cb00  38 20 6f 66 20 74 68 65  20 6d 61 6e 61 67 65 72  |8 of the manager|
0002cb10  3b 20 6d 6f 73 74 6c 79  20 67 75 65 73 73 77 6f  |; mostly guesswo|
0002cb20  72 6b 2c 20 62 75 74 20  61 74 20 6c 65 61 73 74  |rk, but at least|
0002cb30  20 52 65 67 69 73 74 65  72 50 6f 73 74 52 65 63  | RegisterPostRec|
0002cb40  74 46 69 6c 74 65 72 20  77 6f 72 6b 73 20 63 6f  |tFilter works co|
0002cb50  72 72 65 63 74 6c 79 2e  0a 8f 09 55 70 64 61 74  |rrectly....Updat|
0002cb60  65 20 74 6f 20 57 69 6d  70 5f 53 65 6e 64 4d 65  |e to Wimp_SendMe|
0002cb70  73 73 61 67 65 20 72 65  67 61 72 64 69 6e 67 20  |ssage regarding |
0002cb80  64 79 6e 61 6d 69 63 20  61 72 65 61 73 0a 8f 09  |dynamic areas...|
0002cb90  53 57 49 20 6e 75 6d 62  65 72 73 20 61 64 64 65  |SWI numbers adde|
0002cba0  64 20 74 6f 20 76 61 72  69 6f 75 73 20 63 61 6c  |d to various cal|
0002cbb0  6c 73 0a 8f 09 46 69 6c  65 72 41 63 74 69 6f 6e  |ls...FilerAction|
0002cbc0  20 72 65 6f 72 67 61 6e  69 73 65 64 2c 20 65 78  | reorganised, ex|
0002cbd0  61 6d 70 6c 65 20 66 69  78 65 64 20 28 76 61 72  |ample fixed (var|
0002cbe0  69 6f 75 73 29 0a 8f 09  4d 69 73 63 65 6c 6c 61  |ious)...Miscella|
0002cbf0  6e 65 6f 75 73 20 63 72  6f 73 73 2d 72 65 66 65  |neous cross-refe|
0002cc00  72 65 6e 63 65 73 20 61  6e 64 20 6d 69 6e 6f 72  |rences and minor|
0002cc10  20 72 65 2d 6f 72 67 61  6e 69 73 61 74 69 6f 6e  | re-organisation|
0002cc20  73 0a 8f 09 47 72 61 6d  61 74 69 63 61 6c 20 61  |s...Gramatical a|
0002cc30  6e 64 20 73 70 65 6c 6c  69 6e 67 20 65 72 72 6f  |nd spelling erro|
0002cc40  72 73 20 63 6f 72 72 65  63 74 65 64 2e 0a 0a 3c  |rs corrected...<|
0002cc50  50 72 65 76 69 6f 75 73  20 68 69 73 74 6f 72 79  |Previous history|
0002cc60  3d 3e 2e 68 69 73 74 31  30 33 3e 0a 44 49 52 24  |=>.hist103>.DIR$|
0002cc70  50 00 00 00 50 00 00 00  bc cc 02 00 47 fd ff ff  |P...P.......G...|
0002cc80  38 4f 98 cd 56 01 00 00  03 00 00 00 00 00 00 00  |8O..V...........|
0002cc90  21 52 6f 6f 74 00 00 00  14 ce 02 00 48 ff ff ff  |!Root.......H...|
0002cca0  c2 49 1c 0b ea 00 00 00  33 00 00 00 00 00 00 00  |.I......3.......|
0002ccb0  54 61 73 6b 49 6e 66 6f  00 00 00 00 44 41 54 41  |TaskInfo....DATA|
0002ccc0  56 01 00 00 54 61 73 6b  57 69 6e 64 6f 77 0a 23  |V...TaskWindow.#|
0002ccd0  50 61 72 65 6e 74 20 21  52 6f 6f 74 0a 23 50 72  |Parent !Root.#Pr|
0002cce0  65 66 69 78 20 54 61 73  6b 57 69 6e 64 6f 77 5f  |efix TaskWindow_|
0002ccf0  0a 3c 54 61 73 6b 49 6e  66 6f 3e 0a 0a 4d 65 73  |.<TaskInfo>..Mes|
0002cd00  73 61 67 65 20 63 61 6c  6c 73 20 3a 0a 23 49 6e  |sage calls :.#In|
0002cd10  64 65 6e 74 20 33 0a 23  54 61 62 6c 65 20 34 20  |dent 3.#Table 4 |
0002cd20  32 34 0a 3c 38 30 38 43  30 20 54 57 5f 49 6e 70  |24.<808C0 TW_Inp|
0002cd30  75 74 3d 3e 4d 73 67 5f  38 30 38 63 30 3e 0a 3c  |ut=>Msg_808c0>.<|
0002cd40  38 30 38 43 31 20 54 57  5f 4f 75 74 70 75 74 3d  |808C1 TW_Output=|
0002cd50  3e 4d 73 67 5f 38 30 38  63 31 3e 0a 3c 38 30 38  |>Msg_808c1>.<808|
0002cd60  43 32 20 54 57 5f 45 67  6f 3d 3e 4d 73 67 5f 38  |C2 TW_Ego=>Msg_8|
0002cd70  30 38 63 32 3e 0a 3c 38  30 38 43 33 20 54 57 5f  |08c2>.<808C3 TW_|
0002cd80  4d 6f 72 69 6f 3d 3e 4d  73 67 5f 38 30 38 63 33  |Morio=>Msg_808c3|
0002cd90  3e 0a 3c 38 30 38 43 34  20 54 57 5f 4d 6f 72 69  |>.<808C4 TW_Mori|
0002cda0  74 65 3d 3e 4d 73 67 5f  38 30 38 63 34 3e 0a 3c  |te=>Msg_808c4>.<|
0002cdb0  38 30 38 43 35 20 54 57  5f 4e 65 77 54 61 73 6b  |808C5 TW_NewTask|
0002cdc0  3d 3e 4d 73 67 5f 38 30  38 63 35 3e 0a 3c 38 30  |=>Msg_808c5>.<80|
0002cdd0  38 43 36 20 54 57 5f 53  75 73 70 65 6e 64 3d 3e  |8C6 TW_Suspend=>|
0002cde0  4d 73 67 5f 38 30 38 63  36 3e 0a 3c 38 30 38 43  |Msg_808c6>.<808C|
0002cdf0  37 20 54 57 5f 52 65 73  75 6d 65 3d 3e 4d 73 67  |7 TW_Resume=>Msg|
0002ce00  5f 38 30 38 63 37 3e 0a  23 45 6e 64 54 61 62 6c  |_808c7>.#EndTabl|
0002ce10  65 0a 00 00 44 41 54 41  ea 00 00 00 54 61 73 6b  |e...DATA....Task|
0002ce20  57 69 6e 64 6f 77 5f 54  61 73 6b 49 6e 66 6f 0a  |Window_TaskInfo.|
0002ce30  23 50 61 72 65 6e 74 20  54 61 73 6b 57 69 6e 64  |#Parent TaskWind|
0002ce40  6f 77 5f 0a 3d 3e 09 52  30 20 3d 09 30 20 28 6f  |ow_.=>.R0 =.0 (o|
0002ce50  74 68 65 72 20 72 65 61  73 6f 6e 20 63 6f 64 65  |ther reason code|
0002ce60  73 20 61 72 65 20 72 65  73 65 72 76 65 64 29 0a  |s are reserved).|
0002ce70  3c 3d 09 52 30 20 3d 09  30 20 69 66 20 6e 6f 74  |<=.R0 =.0 if not|
0002ce80  20 69 6e 20 54 61 73 6b  57 69 6e 64 6f 77 2c 20  | in TaskWindow, |
0002ce90  6f 74 68 65 72 77 69 73  65 20 69 6e 20 61 20 54  |otherwise in a T|
0002cea0  61 73 6b 57 69 6e 64 6f  77 2e 0a 0a 54 68 69 73  |askWindow...This|
0002ceb0  20 53 57 49 20 69 73 20  75 73 65 64 20 74 6f 20  | SWI is used to |
0002cec0  63 68 65 63 6b 20 69 66  20 74 68 65 20 70 72 6f  |check if the pro|
0002ced0  67 72 61 6d 20 69 73 20  63 75 72 72 65 6e 74 6c  |gram is currentl|
0002cee0  79 20 72 75 6e 6e 69 6e  67 20 69 6e 73 69 64 65  |y running inside|
0002cef0  20 61 20 54 61 73 6b 57  69 6e 64 6f 77 2e 00 00  | a TaskWindow...|
0002cf00  44 41 54 41 84 00 00 00  1e 40 2d e9 00 20 d0 e5  |DATA.....@-.. ..|
0002cf10  58 00 52 e3 01 00 80 02  1e 80 fd 08 00 20 d0 e5  |X.R.......... ..|
0002cf20  21 00 52 e3 01 20 d0 05  78 00 52 03 02 20 d0 05  |!.R.. ..x.R.. ..|
0002cf30  32 00 52 03 03 20 d0 05  36 00 52 03 1e 80 fd 18  |2.R.. ..6.R.....|
0002cf40  00 30 a0 e1 01 40 a0 e1  04 10 80 e2 10 00 a0 e3  |.0...@..........|
0002cf50  21 00 02 ef 03 00 a0 61  1e 80 fd 68 02 00 a0 e1  |!......a...h....|
0002cf60  02 08 c0 e3 04 10 a0 e1  40 20 a0 e3 38 00 02 ef  |........@ ..8...|
0002cf70  03 00 a0 61 01 00 a0 71  1e 80 fd e8 21 78 32 36  |...a...q....!x26|
0002cf80  00 00 00 00 44 41 54 41  19 01 00 00 44 65 76 69  |....DATA....Devi|
0002cf90  63 65 20 6e 75 6d 62 65  72 73 0a 23 57 72 61 70  |ce numbers.#Wrap|
0002cfa0  20 6f 66 66 0a 50 6f 72  74 09 4d 61 6a 6f 72 20  | off.Port.Major |
0002cfb0  64 65 76 69 63 65 09 4d  69 6e 6f 72 20 64 65 76  |device.Minor dev|
0002cfc0  69 63 65 0a 23 4c 69 6e  65 0a 50 61 72 61 6c 6c  |ice.#Line.Parall|
0002cfd0  65 6c 20 70 6f 72 74 09  31 09 30 0a 53 65 72 69  |el port.1.0.Seri|
0002cfe0  61 6c 20 70 6f 72 74 09  32 09 30 0a 53 63 72 65  |al port.2.0.Scre|
0002cff0  65 6e 20 70 61 6c 65 74  74 65 09 33 09 30 0a 4d  |en palette.3.0.M|
0002d000  49 44 49 20 69 6e 74 65  72 66 61 63 65 09 34 09  |IDI interface.4.|
0002d010  2d 31 09 28 61 6c 6c 20  70 6f 72 74 73 29 0a 09  |-1.(all ports)..|
0002d020  09 20 09 30 2d 33 09 28  70 6f 72 74 20 6e 75 6d  |. .0-3.(port num|
0002d030  62 65 72 29 0a 46 6c 6f  70 70 79 20 64 69 73 63  |ber).Floppy disc|
0002d040  73 09 35 09 2d 31 09 28  61 6c 6c 20 66 6c 6f 70  |s.5.-1.(all flop|
0002d050  70 79 20 64 69 73 63 73  29 0a 09 09 20 09 30 2d  |py discs)... .0-|
0002d060  33 09 28 64 72 69 76 65  20 6e 75 6d 62 65 72 29  |3.(drive number)|
0002d070  0a 53 6f 75 6e 64 20 73  79 73 74 65 6d 09 36 09  |.Sound system.6.|
0002d080  30 09 28 77 68 6f 6c 65  20 73 6f 75 6e 64 20 73  |0.(whole sound s|
0002d090  79 73 74 65 6d 29 0a 23  57 72 61 70 0a 00 00 00  |ystem).#Wrap....|
0002d0a0  44 49 52 24 a4 01 00 00  a4 01 00 00 44 d2 02 00  |DIR$........D...|
0002d0b0  48 fd ff ff af 7a 8e 1a  4f 02 00 00 13 00 00 00  |H....z..O.......|
0002d0c0  00 00 00 00 21 72 6f 6f  74 00 00 00 94 d4 02 00  |....!root.......|
0002d0d0  48 ff ff ff 22 b2 8f 1a  2b 02 00 00 13 00 00 00  |H..."...+.......|
0002d0e0  00 00 00 00 54 68 72 6f  77 62 61 63 6b 53 65 6e  |....ThrowbackSen|
0002d0f0  64 00 00 00 c0 d6 02 00  48 ff ff ff 67 8e 95 0a  |d.......H...g...|
0002d100  ad 00 00 00 13 00 00 00  00 00 00 00 54 68 72 6f  |............Thro|
0002d110  77 62 61 63 6b 53 74 61  72 74 00 00 70 d7 02 00  |wbackStart..p...|
0002d120  48 ff ff ff 6b 96 95 0a  6f 00 00 00 13 00 00 00  |H...k...o.......|
0002d130  00 00 00 00 54 68 72 6f  77 62 61 63 6b 45 6e 64  |....ThrowbackEnd|
0002d140  00 00 00 00 e0 d7 02 00  48 ff ff ff 96 a0 6d 27  |........H.....m'|
0002d150  df 00 00 00 33 00 00 00  00 00 00 00 50 72 65 66  |....3.......Pref|
0002d160  69 78 00 00 c0 d8 02 00  48 ff ff ff 0d b0 6d 27  |ix......H.....m'|
0002d170  de 01 00 00 33 00 00 00  00 00 00 00 53 65 74 43  |....3.......SetC|
0002d180  4c 53 69 7a 65 00 00 00  a0 da 02 00 48 ff ff ff  |LSize.......H...|
0002d190  f0 c0 6d 27 36 01 00 00  33 00 00 00 00 00 00 00  |..m'6...3.......|
0002d1a0  53 65 74 43 4c 00 00 00  d8 db 02 00 48 ff ff ff  |SetCL.......H...|
0002d1b0  6a c9 6d 27 49 01 00 00  33 00 00 00 00 00 00 00  |j.m'I...3.......|
0002d1c0  47 65 74 43 6c 00 00 00  24 dd 02 00 48 ff ff ff  |GetCl...$...H...|
0002d1d0  89 ce 6d 27 c1 00 00 00  33 00 00 00 00 00 00 00  |..m'....3.......|
0002d1e0  47 65 74 43 4c 53 69 7a  65 00 00 00 e8 dd 02 00  |GetCLSize.......|
0002d1f0  48 ff ff ff 84 df 6d 27  af 00 00 00 33 00 00 00  |H.....m'....3...|
0002d200  00 00 00 00 54 68 72 6f  77 62 61 63 6b 52 65 67  |....ThrowbackReg|
0002d210  69 73 74 65 72 00 00 00  98 de 02 00 48 ff ff ff  |ister.......H...|
0002d220  56 f0 6d 27 af 00 00 00  33 00 00 00 00 00 00 00  |V.m'....3.......|
0002d230  54 68 72 6f 77 62 61 63  6b 55 6e 52 65 67 69 73  |ThrowbackUnRegis|
0002d240  74 65 72 00 44 41 54 41  4f 02 00 00 44 44 45 55  |ter.DATAO...DDEU|
0002d250  74 69 6c 73 0a 23 50 61  72 65 6e 74 20 21 52 6f  |tils.#Parent !Ro|
0002d260  6f 74 0a 23 50 72 65 66  69 78 20 44 44 45 55 74  |ot.#Prefix DDEUt|
0002d270  69 6c 73 5f 0a 23 54 61  62 6c 65 20 43 6f 6c 75  |ils_.#Table Colu|
0002d280  6d 6e 73 20 32 0a 3c 50  72 65 66 69 78 3e 0a 3c  |mns 2.<Prefix>.<|
0002d290  53 65 74 43 4c 53 69 7a  65 3e 0a 3c 53 65 74 43  |SetCLSize>.<SetC|
0002d2a0  4c 3e 0a 3c 47 65 74 43  4c 53 69 7a 65 3e 0a 3c  |L>.<GetCLSize>.<|
0002d2b0  47 65 74 43 6c 3e 0a 3c  54 68 72 6f 77 62 61 63  |GetCl>.<Throwbac|
0002d2c0  6b 52 65 67 69 73 74 65  72 3e 0a 3c 54 68 72 6f  |kRegister>.<Thro|
0002d2d0  77 62 61 63 6b 55 6e 52  65 67 69 73 74 65 72 3e  |wbackUnRegister>|
0002d2e0  0a 3c 54 68 72 6f 77 62  61 63 6b 53 74 61 72 74  |.<ThrowbackStart|
0002d2f0  3e 0a 3c 54 68 72 6f 77  62 61 63 6b 53 65 6e 64  |>.<ThrowbackSend|
0002d300  3e 0a 3c 54 68 72 6f 77  62 61 63 6b 45 6e 64 3e  |>.<ThrowbackEnd>|
0002d310  0a 23 45 6e 64 54 61 62  6c 65 0a 0a 54 68 72 6f  |.#EndTable..Thro|
0002d320  77 62 61 63 6b 20 70 72  6f 74 6f 63 6f 6c 20 3a  |wback protocol :|
0002d330  0a 23 49 6e 64 65 6e 74  20 34 0a 23 54 61 62 6c  |.#Indent 4.#Tabl|
0002d340  65 20 34 20 32 34 0a 3c  34 32 35 38 30 20 54 68  |e 4 24.<42580 Th|
0002d350  72 6f 77 62 61 63 6b 53  74 61 72 74 3d 3e 4d 73  |rowbackStart=>Ms|
0002d360  67 5f 34 32 35 38 30 3e  0a 3c 34 32 35 38 31 20  |g_42580>.<42581 |
0002d370  50 72 6f 63 65 73 73 69  6e 67 46 69 6c 65 3d 3e  |ProcessingFile=>|
0002d380  4d 73 67 5f 34 32 35 38  31 3e 0a 3c 34 32 35 38  |Msg_42581>.<4258|
0002d390  32 20 45 72 72 6f 72 73  49 6e 3d 3e 4d 73 67 5f  |2 ErrorsIn=>Msg_|
0002d3a0  34 32 35 38 32 3e 0a 3c  34 32 35 38 33 20 45 72  |42582>.<42583 Er|
0002d3b0  72 6f 72 44 65 74 61 69  6c 73 3d 3e 4d 73 67 5f  |rorDetails=>Msg_|
0002d3c0  34 32 35 38 33 3e 0a 3c  34 32 35 38 34 20 54 68  |42583>.<42584 Th|
0002d3d0  72 6f 77 62 61 63 6b 45  6e 64 3d 3e 4d 73 67 5f  |rowbackEnd=>Msg_|
0002d3e0  34 32 35 38 34 3e 0a 3c  34 32 35 38 35 20 49 6e  |42584>.<42585 In|
0002d3f0  66 6f 46 6f 72 46 69 6c  65 3d 3e 4d 73 67 5f 34  |foForFile=>Msg_4|
0002d400  32 35 38 35 3e 0a 3c 34  32 35 38 36 20 49 6e 66  |2585>.<42586 Inf|
0002d410  6f 44 65 74 61 69 6c 73  3d 3e 4d 73 67 5f 34 32  |oDetails=>Msg_42|
0002d420  35 38 36 3e 0a 23 45 6e  64 54 61 62 6c 65 0a 0a  |586>.#EndTable..|
0002d430  23 49 6e 64 65 6e 74 20  30 0a 44 44 45 20 4d 61  |#Indent 0.DDE Ma|
0002d440  6b 65 20 50 72 6f 74 6f  63 6f 6c 20 3a 0a 23 49  |ke Protocol :.#I|
0002d450  6e 64 65 6e 74 20 34 0a  23 54 61 62 6c 65 20 32  |ndent 4.#Table 2|
0002d460  20 32 34 0a 3c 38 31 34  30 30 20 44 44 45 5f 46  | 24.<81400 DDE_F|
0002d470  6c 61 67 73 20 63 68 61  6e 67 65 64 3d 3e 4d 73  |lags changed=>Ms|
0002d480  67 5f 38 31 34 30 30 3e  0a 23 45 6e 64 54 61 62  |g_81400>.#EndTab|
0002d490  6c 65 0a 00 44 41 54 41  2b 02 00 00 44 44 45 55  |le..DATA+...DDEU|
0002d4a0  74 69 6c 73 5f 54 68 72  6f 77 62 61 63 6b 53 65  |tils_ThrowbackSe|
0002d4b0  6e 64 20 20 28 26 34 32  35 38 38 29 0a 23 50 61  |nd  (&42588).#Pa|
0002d4c0  72 65 6e 74 20 44 44 45  55 74 69 6c 73 5f 0a 3d  |rent DDEUtils_.=|
0002d4d0  3e 09 52 30 20 3d 20 3c  74 79 70 65 3d 3e 2e 74  |>.R0 = <type=>.t|
0002d4e0  79 70 65 3e 0a 09 52 32  20 3d 20 66 69 6c 65 6e  |ype>..R2 = filen|
0002d4f0  61 6d 65 20 6f 66 20 66  69 6c 65 0a 09 52 33 20  |ame of file..R3 |
0002d500  3d 20 6c 69 6e 65 20 6e  75 6d 62 65 72 20 69 6e  |= line number in|
0002d510  20 66 69 6c 65 2c 20 66  6f 72 20 74 79 70 65 20  | file, for type |
0002d520  31 20 61 6e 64 20 32 0a  09 52 34 20 3d 20 3c 73  |1 and 2..R4 = <s|
0002d530  65 72 69 6f 75 73 6e 65  73 73 3d 3e 2e 73 65 72  |eriousness=>.ser|
0002d540  69 6f 75 73 6e 65 73 73  3e 20 66 6f 72 20 74 79  |iousness> for ty|
0002d550  70 65 20 31 2c 20 30 20  66 6f 72 20 74 79 70 65  |pe 1, 0 for type|
0002d560  20 32 2c 20 61 6e 64 20  69 67 6e 6f 72 65 64 20  | 2, and ignored |
0002d570  6f 74 68 65 72 77 69 73  65 0a 09 52 35 20 3d 20  |otherwise..R5 = |
0002d580  70 6f 69 6e 74 65 72 20  74 6f 20 6d 65 73 73 61  |pointer to messa|
0002d590  67 65 2c 20 66 6f 72 20  74 79 70 65 20 31 20 61  |ge, for type 1 a|
0002d5a0  6e 64 20 32 0a 0a 54 68  69 73 20 53 57 49 20 69  |nd 2..This SWI i|
0002d5b0  73 20 75 73 65 64 20 74  6f 20 73 65 6e 64 20 64  |s used to send d|
0002d5c0  61 74 61 20 66 72 6f 6d  20 61 6e 20 61 70 70 6c  |ata from an appl|
0002d5d0  69 63 61 74 69 6f 6e 20  74 6f 20 74 68 65 20 74  |ication to the t|
0002d5e0  68 72 6f 77 62 61 63 6b  20 68 61 6e 64 6c 65 72  |hrowback handler|
0002d5f0  2e 0a 23 73 75 62 70 61  67 65 20 74 79 70 65 0a  |..#subpage type.|
0002d600  44 44 45 55 74 69 6c 73  5f 54 68 72 6f 77 62 61  |DDEUtils_Throwba|
0002d610  63 6b 53 65 6e 64 20 74  79 70 65 0a 54 79 70 65  |ckSend type.Type|
0002d620  09 4d 65 61 6e 69 6e 67  0a 23 4c 69 6e 65 0a 30  |.Meaning.#Line.0|
0002d630  09 50 72 6f 63 65 73 73  69 6e 67 0a 31 09 45 72  |.Processing.1.Er|
0002d640  72 6f 72 0a 32 09 49 6e  66 6f 72 6d 61 74 69 6f  |ror.2.Informatio|
0002d650  6e 0a 23 73 75 62 70 61  67 65 20 73 65 72 69 6f  |n.#subpage serio|
0002d660  75 73 6e 65 73 73 0a 44  44 45 55 74 69 6c 73 5f  |usness.DDEUtils_|
0002d670  54 68 72 6f 77 62 61 63  6b 53 65 6e 64 20 73 65  |ThrowbackSend se|
0002d680  72 69 6f 75 73 6e 65 73  73 0a 54 79 70 65 09 4d  |riousness.Type.M|
0002d690  65 61 6e 69 6e 67 0a 23  4c 69 6e 65 0a 30 09 57  |eaning.#Line.0.W|
0002d6a0  61 72 6e 69 6e 67 0a 31  09 45 72 72 6f 72 0a 32  |arning.1.Error.2|
0002d6b0  09 53 65 72 69 6f 75 73  20 45 72 72 6f 72 0a 00  |.Serious Error..|
0002d6c0  44 41 54 41 ad 00 00 00  44 44 45 55 74 69 6c 73  |DATA....DDEUtils|
0002d6d0  5f 54 68 72 6f 77 62 61  63 6b 53 74 61 72 74 20  |_ThrowbackStart |
0002d6e0  20 28 26 34 32 35 38 37  29 0a 23 50 61 72 65 6e  | (&42587).#Paren|
0002d6f0  74 20 44 44 45 55 74 69  6c 73 5f 0a 54 68 69 73  |t DDEUtils_.This|
0002d700  20 53 57 49 20 69 73 20  75 73 65 64 20 74 6f 20  | SWI is used to |
0002d710  73 74 61 72 74 20 61 20  44 44 45 55 74 69 6c 73  |start a DDEUtils|
0002d720  20 74 68 72 6f 77 62 61  63 6b 20 73 65 73 73 69  | throwback sessi|
0002d730  6f 6e 2e 0a 0a 55 73 65  20 3c 44 44 45 55 74 69  |on...Use <DDEUti|
0002d740  6c 73 5f 54 68 72 6f 77  62 61 63 6b 53 65 6e 64  |ls_ThrowbackSend|
0002d750  3e 20 74 6f 20 70 75 74  20 64 61 74 61 20 69 6e  |> to put data in|
0002d760  20 74 68 65 20 62 75 66  66 65 72 2e 0a 00 00 00  | the buffer.....|
0002d770  44 41 54 41 6f 00 00 00  44 44 45 55 74 69 6c 73  |DATAo...DDEUtils|
0002d780  5f 54 68 72 6f 77 62 61  63 6b 45 6e 64 20 20 28  |_ThrowbackEnd  (|
0002d790  26 34 32 35 38 39 29 0a  23 50 61 72 65 6e 74 20  |&42589).#Parent |
0002d7a0  44 44 45 55 74 69 6c 73  5f 0a 54 68 69 73 20 53  |DDEUtils_.This S|
0002d7b0  57 49 20 69 73 20 75 73  65 64 20 74 6f 20 65 6e  |WI is used to en|
0002d7c0  64 20 61 20 44 44 45 55  74 69 6c 73 20 74 68 72  |d a DDEUtils thr|
0002d7d0  6f 77 62 61 63 6b 20 73  65 73 73 69 6f 6e 2e 00  |owback session..|
0002d7e0  44 41 54 41 df 00 00 00  44 44 45 55 74 69 6c 73  |DATA....DDEUtils|
0002d7f0  5f 50 72 65 66 69 78 20  20 28 26 34 32 35 38 30  |_Prefix  (&42580|
0002d800  29 0a 23 50 61 72 65 6e  74 20 44 44 45 55 74 69  |).#Parent DDEUti|
0002d810  6c 73 5f 0a 3d 3e 09 52  30 20 3d 09 70 6f 69 6e  |ls_.=>.R0 =.poin|
0002d820  74 65 72 20 74 6f 20 64  69 72 65 63 74 6f 72 79  |ter to directory|
0002d830  20 6e 61 6d 65 2c 20 6f  72 20 30 20 74 6f 20 63  | name, or 0 to c|
0002d840  6c 65 61 72 0a 3c 3d 09  52 30 20 70 72 65 73 65  |lear.<=.R0 prese|
0002d850  72 76 65 64 0a 0a 54 68  69 73 20 53 57 49 20 69  |rved..This SWI i|
0002d860  73 20 75 73 65 64 20 74  6f 20 73 65 74 20 74 68  |s used to set th|
0002d870  65 20 63 75 72 72 65 6e  74 20 64 69 72 65 63 74  |e current direct|
0002d880  6f 72 79 20 66 6f 72 20  74 68 69 73 20 63 6f 6e  |ory for this con|
0002d890  74 65 78 74 2c 20 72 65  6c 61 74 69 76 65 20 74  |text, relative t|
0002d8a0  6f 20 74 68 65 20 67 6c  6f 62 61 6c 20 63 75 72  |o the global cur|
0002d8b0  65 6e 74 20 64 69 72 65  63 74 6f 72 79 2e 0a 00  |ent directory...|
0002d8c0  44 41 54 41 de 01 00 00  44 44 45 55 74 69 6c 73  |DATA....DDEUtils|
0002d8d0  5f 53 65 74 43 4c 53 69  7a 65 20 20 28 26 34 32  |_SetCLSize  (&42|
0002d8e0  35 38 31 29 0a 23 50 61  72 65 6e 74 20 44 44 45  |581).#Parent DDE|
0002d8f0  55 74 69 6c 73 5f 0a 3d  3e 09 52 30 20 3d 09 6c  |Utils_.=>.R0 =.l|
0002d900  65 6e 67 74 68 20 6f 66  20 63 6f 6d 6d 61 6e 64  |ength of command|
0002d910  20 6c 69 6e 65 20 62 75  66 66 65 72 0a 3c 3d 09  | line buffer.<=.|
0002d920  52 30 20 63 6f 72 72 75  70 74 0a 0a 54 68 69 73  |R0 corrupt..This|
0002d930  20 53 57 49 20 69 73 20  75 73 65 64 20 74 6f 20  | SWI is used to |
0002d940  73 65 74 20 75 70 20 74  68 65 20 73 69 7a 65 20  |set up the size |
0002d950  6f 66 20 74 68 65 20 63  6f 6d 6d 61 6e 64 20 6c  |of the command l|
0002d960  69 6e 65 20 62 75 66 66  65 72 20 77 68 65 6e 20  |ine buffer when |
0002d970  3c 44 44 45 55 74 69 6c  73 5f 53 65 74 43 4c 3e  |<DDEUtils_SetCL>|
0002d980  20 69 73 20 63 61 6c 6c  65 64 2e 0a 0a 4e 6f 74  | is called...Not|
0002d990  65 3a 09 54 68 65 72 65  20 69 73 20 6f 6e 6c 79  |e:.There is only|
0002d9a0  20 6f 6e 65 20 65 78 74  65 6e 64 65 64 20 63 6f  | one extended co|
0002d9b0  6d 6d 61 6e 64 20 6c 69  6e 65 20 66 6f 72 20 74  |mmand line for t|
0002d9c0  68 65 20 65 6e 74 69 72  65 20 6d 61 63 68 69 6e  |he entire machin|
0002d9d0  65 2e 20 54 68 69 73 20  6d 65 61 6e 73 20 61 20  |e. This means a |
0002d9e0  70 6f 74 65 6e 74 69 61  6c 20 72 61 63 65 20 63  |potential race c|
0002d9f0  6f 6e 64 69 74 69 6f 6e  20 65 78 69 73 74 73 2c  |ondition exists,|
0002da00  20 69 66 20 74 77 6f 20  74 61 73 6b 73 20 61 72  | if two tasks ar|
0002da10  65 20 62 6f 74 68 20 75  73 69 6e 67 20 65 78 74  |e both using ext|
0002da20  65 6e 64 65 64 20 63 6f  6d 6d 61 6e 64 20 6c 69  |ended command li|
0002da30  6e 65 73 2e 20 54 68 69  73 20 73 65 65 6d 73 20  |nes. This seems |
0002da40  6e 61 ef 76 65 20 63 6f  6e 73 69 64 65 72 69 6e  |na.ve considerin|
0002da50  67 20 74 68 61 74 20 74  68 65 20 44 44 45 55 74  |g that the DDEUt|
0002da60  69 6c 73 20 6d 6f 64 75  6c 65 20 70 61 72 74 69  |ils module parti|
0002da70  61 6c 6c 79 20 69 6d 70  6c 65 6d 65 6e 74 73 20  |ally implements |
0002da80  61 20 70 65 72 2d 74 61  73 6b 20 63 75 72 72 65  |a per-task curre|
0002da90  6e 74 20 64 69 72 65 63  74 6f 72 79 2e 0a 00 00  |nt directory....|
0002daa0  44 41 54 41 36 01 00 00  44 44 45 55 74 69 6c 73  |DATA6...DDEUtils|
0002dab0  5f 53 65 74 43 4c 20 20  28 26 34 32 35 38 32 29  |_SetCL  (&42582)|
0002dac0  0a 23 50 61 72 65 6e 74  20 44 44 45 55 74 69 6c  |.#Parent DDEUtil|
0002dad0  73 5f 0a 3d 3e 09 52 30  20 3d 09 70 6f 69 6e 74  |s_.=>.R0 =.point|
0002dae0  65 72 20 74 6f 20 7a 65  72 6f 20 74 65 72 6d 69  |er to zero termi|
0002daf0  6e 61 74 65 64 20 63 6f  6d 6d 61 6e 64 20 6c 69  |nated command li|
0002db00  6e 65 0a 3c 3d 09 52 30  20 70 72 65 73 65 72 76  |ne.<=.R0 preserv|
0002db10  65 64 0a 0a 54 68 69 73  20 53 57 49 20 69 73 20  |ed..This SWI is |
0002db20  75 73 65 64 20 74 6f 20  73 65 74 20 74 68 65 20  |used to set the |
0002db30  63 6f 6d 6d 61 6e 64 20  6c 69 6e 65 20 6f 66 20  |command line of |
0002db40  74 68 65 20 6c 65 6e 67  74 68 20 73 70 65 63 69  |the length speci|
0002db50  66 69 65 64 20 69 6e 20  3c 44 44 45 55 74 69 6c  |fied in <DDEUtil|
0002db60  73 5f 53 65 74 43 4c 53  69 7a 65 3e 2e 0a 0a 4e  |s_SetCLSize>...N|
0002db70  6f 74 65 3a 09 54 68 65  20 63 6f 6d 6d 61 6e 64  |ote:.The command|
0002db80  20 6c 69 6e 65 20 69 73  20 61 63 74 75 61 6c 6c  | line is actuall|
0002db90  79 20 74 65 72 6d 69 6e  61 74 65 64 20 61 74 20  |y terminated at |
0002dba0  74 68 65 20 66 69 72 73  74 20 2a 63 6f 6e 74 72  |the first *contr|
0002dbb0  6f 6c 2a 20 63 68 61 72  61 63 74 65 72 2e 20 54  |ol* character. T|
0002dbc0  68 69 73 20 69 73 20 76  65 72 79 20 61 6e 6e 6f  |his is very anno|
0002dbd0  79 69 6e 67 2e 0a 00 00  44 41 54 41 49 01 00 00  |ying....DATAI...|
0002dbe0  44 44 45 55 74 69 6c 73  5f 47 65 74 43 6c 20 20  |DDEUtils_GetCl  |
0002dbf0  28 26 34 32 35 38 34 29  0a 23 50 61 72 65 6e 74  |(&42584).#Parent|
0002dc00  20 44 44 45 55 74 69 6c  73 5f 0a 3d 3e 09 52 30  | DDEUtils_.=>.R0|
0002dc10  20 3d 09 70 6f 69 6e 74  65 72 20 74 6f 20 62 75  | =.pointer to bu|
0002dc20  66 66 65 72 20 66 6f 72  20 63 6f 6d 6d 61 6e 64  |ffer for command|
0002dc30  20 6c 69 6e 65 0a 3c 3d  09 52 30 20 70 72 65 73  | line.<=.R0 pres|
0002dc40  65 72 76 65 64 0a 0a 54  68 69 73 20 53 57 49 20  |erved..This SWI |
0002dc50  69 73 20 75 73 65 64 20  74 6f 20 72 65 61 64 20  |is used to read |
0002dc60  74 68 65 20 63 6f 6d 6d  61 6e 64 20 6c 69 6e 65  |the command line|
0002dc70  20 69 6e 74 6f 20 61 20  62 75 66 66 65 72 2e 20  | into a buffer. |
0002dc80  49 74 20 61 6c 73 6f 20  75 6e 73 65 74 73 20 44  |It also unsets D|
0002dc90  44 45 55 74 69 6c 73 20  63 6f 70 79 20 6f 66 20  |DEUtils copy of |
0002dca0  74 68 65 20 63 6f 6d 6d  61 6e 64 20 6c 69 6e 65  |the command line|
0002dcb0  2e 0a 0a 4e 6f 74 65 3a  09 54 68 65 20 63 61 73  |...Note:.The cas|
0002dcc0  65 20 6f 66 20 6c 65 74  74 65 72 73 20 75 73 65  |e of letters use|
0002dcd0  64 20 69 6e 20 74 68 65  20 6e 61 6d 65 20 44 44  |d in the name DD|
0002dce0  45 55 74 69 6c 73 5f 47  65 74 43 7b 2a 7d 6c 7b  |EUtils_GetC{*}l{|
0002dcf0  2a 7d 20 69 73 20 69 6e  63 6f 6e 73 69 73 74 65  |*} is inconsiste|
0002dd00  6e 74 20 77 69 6c 6c 20  61 6c 6c 20 6f 74 68 65  |nt will all othe|
0002dd10  72 20 44 44 45 55 74 69  6c 73 20 53 57 49 73 2e  |r DDEUtils SWIs.|
0002dd20  0a 00 00 00 44 41 54 41  c1 00 00 00 44 44 45 55  |....DATA....DDEU|
0002dd30  74 69 6c 73 5f 47 65 74  43 4c 53 69 7a 65 20 20  |tils_GetCLSize  |
0002dd40  28 26 34 32 35 38 33 29  0a 23 50 61 72 65 6e 74  |(&42583).#Parent|
0002dd50  20 44 44 45 55 74 69 6c  73 5f 0a 3c 3d 09 52 30  | DDEUtils_.<=.R0|
0002dd60  20 3d 09 73 69 7a 65 20  6f 66 20 63 6f 6d 6d 61  | =.size of comma|
0002dd70  6e 64 20 6c 69 6e 65 20  62 75 66 66 65 72 2c 20  |nd line buffer, |
0002dd80  6f 72 20 30 20 69 66 20  6e 6f 6e 65 20 73 65 74  |or 0 if none set|
0002dd90  0a 0a 54 68 69 73 20 53  57 49 20 69 73 20 75 73  |..This SWI is us|
0002dda0  65 64 20 74 6f 20 72 65  61 64 20 74 68 65 20 73  |ed to read the s|
0002ddb0  69 7a 65 20 6f 66 20 74  68 65 20 63 6f 6d 6d 61  |ize of the comma|
0002ddc0  6e 64 20 6c 69 6e 65 20  73 65 74 20 62 79 20 3c  |nd line set by <|
0002ddd0  44 44 45 55 74 69 6c 73  5f 53 65 74 43 4c 53 69  |DDEUtils_SetCLSi|
0002dde0  7a 65 3e 2e 0a 00 00 00  44 41 54 41 af 00 00 00  |ze>.....DATA....|
0002ddf0  44 44 45 55 74 69 6c 73  5f 54 68 72 6f 77 62 61  |DDEUtils_Throwba|
0002de00  63 6b 52 65 67 69 73 74  65 72 20 20 28 26 34 32  |ckRegister  (&42|
0002de10  35 38 35 29 0a 23 50 61  72 65 6e 74 20 44 44 45  |585).#Parent DDE|
0002de20  55 74 69 6c 73 5f 0a 3d  3e 09 52 30 20 3d 09 74  |Utils_.=>.R0 =.t|
0002de30  61 73 6b 20 68 61 6e 64  6c 65 0a 3c 3d 09 52 30  |ask handle.<=.R0|
0002de40  20 70 72 65 73 65 72 76  65 64 0a 0a 54 68 69 73  | preserved..This|
0002de50  20 53 57 49 20 69 73 20  75 73 65 64 20 74 6f 20  | SWI is used to |
0002de60  72 65 67 69 73 74 65 72  20 74 68 65 20 74 61 73  |register the tas|
0002de70  6b 20 74 68 61 74 20 68  61 6e 64 6c 65 73 20 61  |k that handles a|
0002de80  6c 6c 20 74 68 72 6f 77  62 61 63 6b 20 72 65 71  |ll throwback req|
0002de90  75 65 73 74 73 2e 0a 00  44 41 54 41 af 00 00 00  |uests...DATA....|
0002dea0  44 44 45 55 74 69 6c 73  5f 54 68 72 6f 77 62 61  |DDEUtils_Throwba|
0002deb0  63 6b 55 6e 52 65 67 69  73 74 65 72 20 20 28 26  |ckUnRegister  (&|
0002dec0  34 32 35 38 36 29 0a 23  50 61 72 65 6e 74 20 44  |42586).#Parent D|
0002ded0  44 45 55 74 69 6c 73 5f  0a 3d 3e 09 52 30 20 3d  |DEUtils_.=>.R0 =|
0002dee0  09 74 61 73 6b 20 68 61  6e 64 6c 65 0a 3c 3d 09  |.task handle.<=.|
0002def0  52 30 20 70 72 65 73 65  72 76 65 64 0a 0a 54 68  |R0 preserved..Th|
0002df00  69 73 20 53 57 49 20 69  73 20 75 73 65 64 20 74  |is SWI is used t|
0002df10  6f 20 64 65 72 65 67 69  73 74 65 72 20 74 68 65  |o deregister the|
0002df20  20 74 61 73 6b 20 68 61  6e 64 6c 69 6e 67 20 61  | task handling a|
0002df30  6c 6c 20 74 68 72 6f 77  62 61 63 6b 20 72 65 71  |ll throwback req|
0002df40  75 65 73 74 73 2e 0a 00  44 41 54 41 0e 02 00 00  |uests...DATA....|
0002df50  23 20 54 68 69 73 20 69  73 20 6e 6f 74 20 61 6e  |# This is not an|
0002df60  20 65 72 72 6f 72 2c 20  69 74 20 69 73 20 69 6e  | error, it is in|
0002df70  63 6c 75 64 65 64 20 66  72 6f 6d 20 61 20 66 65  |cluded from a fe|
0002df80  77 20 66 69 6c 65 73 0a  23 0a 23 20 49 27 6d 20  |w files.#.# I'm |
0002df90  73 74 69 6c 6c 20 77 6f  72 6b 69 6e 67 20 6f 6e  |still working on|
0002dfa0  20 72 65 2d 6f 72 67 61  6e 69 73 69 6e 67 20 74  | re-organising t|
0002dfb0  68 69 73 2c 20 69 66 20  79 6f 75 20 68 61 76 65  |his, if you have|
0002dfc0  20 61 6e 79 20 69 64 65  61 73 20 70 6c 65 61 73  | any ideas pleas|
0002dfd0  65 0a 23 20 6c 65 74 20  6d 65 20 6b 6e 6f 77 20  |e.# let me know |
0002dfe0  21 0a 23 54 61 62 6c 65  20 43 6f 6c 75 6d 6e 73  |!.#Table Columns|
0002dff0  20 33 0a 3c 50 6f 6c 6c  20 63 6f 64 65 73 3d 3e  | 3.<Poll codes=>|
0002e000  57 69 6d 70 5f 50 6f 6c  6c 3e 0a 3c 55 73 65 72  |Wimp_Poll>.<User|
0002e010  20 6d 65 73 73 61 67 65  73 3d 3e 4d 73 67 5f 3e  | messages=>Msg_>|
0002e020  0a 3c 57 69 6e 64 6f 77  20 62 6c 6f 63 6b 3d 3e  |.<Window block=>|
0002e030  57 69 6d 70 5f 77 69 6e  64 6f 77 62 6c 6f 63 6b  |Wimp_windowblock|
0002e040  3e 0a 3c 57 69 6e 64 6f  77 20 66 6c 61 67 73 3d  |>.<Window flags=|
0002e050  3e 57 69 6d 70 5f 77 69  6e 64 6f 77 66 6c 61 67  |>Wimp_windowflag|
0002e060  73 3e 0a 3c 4d 65 6e 75  20 62 6c 6f 63 6b 3d 3e  |s>.<Menu block=>|
0002e070  57 69 6d 70 5f 4d 65 6e  75 42 6c 6f 63 6b 3e 0a  |Wimp_MenuBlock>.|
0002e080  3c 4d 65 6e 75 20 69 74  65 6d 73 3d 3e 57 69 6d  |<Menu items=>Wim|
0002e090  70 5f 4d 65 6e 75 42 6c  6f 63 6b 2e 69 74 65 6d  |p_MenuBlock.item|
0002e0a0  3e 0a 3c 4d 65 6e 75 20  66 6c 61 67 73 3d 3e 57  |>.<Menu flags=>W|
0002e0b0  69 6d 70 5f 4d 65 6e 75  42 6c 6f 63 6b 2e 66 6c  |imp_MenuBlock.fl|
0002e0c0  61 67 73 3e 0a 0a 3c 49  63 6f 6e 20 62 6c 6f 63  |ags>..<Icon bloc|
0002e0d0  6b 3d 3e 57 69 6d 70 5f  69 63 6f 6e 62 6c 6f 63  |k=>Wimp_iconbloc|
0002e0e0  6b 3e 0a 3c 49 63 6f 6e  20 66 6c 61 67 73 3d 3e  |k>.<Icon flags=>|
0002e0f0  57 69 6d 70 5f 69 63 6f  6e 66 6c 61 67 73 3e 0a  |Wimp_iconflags>.|
0002e100  3c 49 63 6f 6e 20 62 75  74 74 6f 6e 73 3d 3e 57  |<Icon buttons=>W|
0002e110  69 6d 70 5f 69 63 6f 6e  62 75 74 74 6f 6e 3e 0a  |imp_iconbutton>.|
0002e120  3c 56 61 6c 69 64 61 74  69 6f 6e 20 73 74 72 69  |<Validation stri|
0002e130  6e 67 73 3d 3e 57 69 6d  70 5f 76 61 6c 69 64 61  |ngs=>Wimp_valida|
0002e140  74 69 6f 6e 73 74 72 69  6e 67 3e 0a 23 45 6e 64  |tionstring>.#End|
0002e150  54 61 62 6c 65 0a 00 00                           |Table...|
0002e158