=> R0-R7 = APCS registers as required by routine
R8 = reason code (bits 0-7) and flags (bits 8-31)
R9 = hardware call number
<= depends on flags
This SWI is only available on machines running with a hardware abstraction layer allowing them to run on machines not based around Acorn custom chips. The hardware abstraction layer doesn't return errors itself with the V flag set, any error will be marked in some call specific way in R0-R3,
OS_Hardware subreason codes
R8 Operation
0 Call hardware call number (5.00)
=> R0-R3 = as required by call
R9 = hardware call number
<= R0-R3 = updated by call
R4-R9 = preserved
1 Get routine address and workspace for call number (5.00)
=> R9 = hardware call number
<= R0 = routine address
R1 = static base value for routine
2 Register HAL device (5.03)
For internal use
3 Deregister HAL device (5.03)
For internal use
4 Enumerate HAL devices (5.03)
=> R0 = b0-15 device type
b16-31 highest acceptable API version
R1 = restart key (or 0 for first call)
<= R1 = updated for next call, or -1 for no more
R2 = pointer to HAL descriptor
5 Enumerate HAL devices in order of registering (5.19)
=> R0 = b0-15 device type
b16-31 highest acceptable API version
R1 = restart key (or 0 for first call)
<= R1 = updated for next call, or -1 for no more
R2 = pointer to HAL descriptor
|
|
|