h6. [[Programmer's Reference Manuals]] h6(. » Internal Communications Like all Operating Systems, RISC OS must pass information from one part of the system to another. Internal communication is achieved using [[Introduction To SWIs|SWIs]] in five categories: * "Vectors":#vectors * "Service Calls":#service * "Window Manager":#window * "CallBacks":#callbacks * "UpCalls":#upcalls h3(#vectors). Vectors The [[OS_CallAVector]] SWI is used to call the routine(s) on a software vector. More information can be found in the [[Software Vectors]] section. h3(#service). Service calls The [[OS_ServiceCall]] SWI is used to pass a service around modules. It is the responsibility of a module if it wishes to provide the service or pass the call on to other modules. More information can be found in the [[Modules]] section. h3(#window). Window Manager The Window Manager is used to communicate with applications that run within the window environment. The full list of Wimp SWI calls are provided [[WindowManager SWI Calls|here]]. h3(#callbacks). CallBacks CallBacks are routines that are to be called at a later date via a function pointer (address). There are two types: * *Transient:* These routines are called only once and may be called when RISC OS is threaded, but idle. The [[OS_AddCallBack]] SWI is used to set up transient callbacks * *Non-Transient:* The [[OS_SetCallBack]] SWI is used to set up non-transient callbacks. They are handled by the CallBack handler, and the default one can be replaced by [[OS_ChangeEnvironment]] h3(#upcalls). UpCalls Used by the OS to notify applications of particular situations. The [[OS_UpCall]] SWI performs many different operations (different reason codes). Routines that handle UpCalls must *only* call the error-returning SWI calls. That is SWI calls that have their "X bit":link2 set. i.e. either add the value &20000 to the SWI number, or add the letter 'X' in front of the SWI name h4. See also * [[Introduction To SWIs|Introduction to SWIs]] * [[OS_AddCallBack]] * [[OS_CallAVector]] * [[OS_SetCallBack]] * [[OS_ServiceCall]] * [[OS_UpCall]] * [[WindowManager SWI Calls|Wimp SWIs]] [link2]Introduction%20To%20SWIs#address