h6. [[WindowManager]] h6(. » [[WindowManager Service Calls|Service Calls]] h6((. » Service_StartWimp h2. Service_StartWimp h5. (Service Call &49) |_<{width:4em}. Entry | | |<^. R1 |<^. 73 (&49) | |_<{width:4em}. Exit | | |<^. R0 |<^. Pointer to *command to start module | |<^. R1 |<^. 0 to claim call | h4. Use This service is broadcast by the Wimp to start up resident module tasks by passing the returned *command to [[Wimp_StartTask]]. h4. Notes Module tasks which wish to start should claim this service, passing their start *command in R0. The Wimp will re-broadcast this service until no more modules claim it. Filer module tasks should wait for [[Service_StartFiler]] instead. To prevent infinite loops if an error occurs in starting a task, modules should: # set their taskhandle to 0 when initialising, [[Service_PostReset]], or [[Service_StartedWimp]] # only claim this service if their taskhandle is zero. i.e. they are not already running, and not attempting to restart # set their taskhandle to a flag value (-1) when they claim this service # set their taskhandle based on the return result of [[Wimp_Initialise]] if their command is called, or set their taskhandle back to 0 on [[Service_StartedWimp]] # set their taskhandle back to 0 when they quit using [[Wimp_CloseDown]] h4. See also * [[Service Calls]] * [[Service_PostReset]] * [[Service_StartFiler]] * [[Service_StartedWimp]] * [[Wimp_CloseDown]] * [[Wimp_Initialise]] * [[Wimp_StartTask]] [linkWimp_StartTask]Wimp_StartTask