Entry | |
---|---|
R0 | Reason code |
All other registers dependent on reason code |
Exit | |
---|---|
R0 | Preserved |
All other registers dependent on reason code |
The purpose of this call is to call the vector UpCallV, to warn of particular conditions.
The action performed depends on the reason code value in R0.
This SWI calls the vector UpCallV. To use UpCalls, you must either claim the vector and install a routine on it, or install an UpCall handler.
They are called UpCalls because they are calls that RISC OS makes up to an application makes down to RISC OS. They generally occur in the foreground, and are hence different to Events, which occur in the background.
Routines that deal with UpCalls should be viewed as system extensions, and so should only call error-returning SWI’s (’X’+SWI).
If a routine installed on the vector deals with the situation it should intercept the call to the vector, as there is no longer any point informing any other routines or the UpCall handler of the situation. If it can’t deal with the situation it must pass the call on, as another one may be able to do so.
# | Hex # | Action |
---|---|---|
1 | &01 | Media not present |
2 | &02 | Media not known |
3 | &03 | Miscellaneous file changed information |
4 | &04 | Media search end |
6 | &06 | Taskwindow sleep |
7 | &07 | PipeFS sleep no more |
8 | &08 | Buffer filling |
9 | &09 | Buffer emptying |
10 | &0A | DeviceFS stream created |
11 | &0B | DeviceFS stream closed |
12 | &0C | Freeway |
15 | &0F | Device receive data present |
16 | &10 | Device threshold above |
17 | &11 | Device threshold below |
19 | &13 | Media search end with message |
20 | &14 | Keyboard status change |
23 | &17 | PDumper action |
256 | &100 | New application |
257 | &101 | Move memory request |