h6. [[OS SWI Calls]] h6(. » [[OS_FSControl]] h6((. » OS_FSControl 2 h2. OS_ FSControl 2 h5. (SWI &29) |_<^{width:3em}. Entry | | |<^. R0 |<^. 2 | |<^. R1 |<^. pointer to command tail | |<^. R2 |<^. [[Currently Active Object Pointer|currently active object pointer]] to write | |<^. R3 |<^. pointer to command name | |_<^{width:3em}. Exit | | |<^. R0 |<^. Preserved | |<^. R1 |<^. Preserved | |<^. R2 |<^. Preserved | |<^. R3 |<^. Preserved | h4. Use The purpose of this call is to inform the Operating System and current application, that a new application is starting. h4. Notes Although registers are preserved, the call may not return. This SWI allows you to fake starting an application. It performs the following actions: # Issues [[OS_UpCall 256]] to inform the current application - if the upcall is claimed then the error "Unable to start application" is returned. # Issues [[Service_NewApplication]] to inform modules. If the service is claimed, then the error cannot be returned to you (as your application will now have been killed) so the error "Unable to start application" is passed to [[OS_GenerateError]], which results in the error being sent to your parent's [[Error Handler|error handler]]. # Unless the [[Exit Handler|exit handler]] is below [[Memory Limit Handler|memory limit]] then all handlers below memory limit are reset to their defaults ([[OS_ReadDefaultHandler|OS_ReadDefaultHandler]]). # The [[Currently Active Object Pointer|currently active object pointer]] is set; the current time and command tail are set ([[OS_WriteEnv]]). h4. See also * [[Currently Active Object Pointer]] * [[Error Handler]] * [[Exit Handler]] * [[Memory Limit Handler]] * [[OS_FSControl]] * [[OS_GenerateError]] * [[OS_ReadDefaultHandler]] * [[OS_UpCall 256]] * [[Service_NewApplication]]