AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
=>     R0 =     task handle of Filer
     R1 =     &49 (reason code)
<=     R0 & R1 preserved to pass on else
<=     R0 =     pointer to command to start module
     R1 =     0 (to claim service)

This service is issued by the Filer to start up resident filer module tasks by passing the returned command to Wimp_StartTask. Module tasks which wish to start should claim this service, passing their start command in R0. The Filer will re-issue this service until no more modules claim it.

To prevent infinite loops if an error occurs in starting a task, modules should:

1     set their taskhandle to 0 on initialiseService_Reset or Service_StartedFiler
2     only claim this service if their taskhandle is zero (i.e. they are not already running, and not attempting to re-start)
3     set their taskhandle to a flag value (-1) when they claim this service
4a     set their taskhandle based on the return result of Wimp_Initialise if their command is called
4b     or set their taskhandle back to 0 on Service_StartedFiler (failed to initialise)
5     set their taskhandle back to 0 when they quit using Wimp_CloseDown

Filer tasks should also check for Service_FilerDying, and close down if they receive it.

See PRM 2, page 490

[sh-index] Back to list of manuals