Showing changes from revision #13 to #14:
Added | Removed | Changed
The tables on this page provide an overview of which Portable features are available in which variant of the module. Note that the contents of this page should only be used as a guide; programs wishing to use the Portable module should always use the appropriate interfaces (e.g. Portable_ReadFeatures) to determine the availability of the features they require.
This table lists the supported SWIs. The SWIs which the Stork version “Maybe” support are present in the source code, but are currently disabled.
# | Name | A4 | Stork | 75/CX | HAL | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|---|
42FC0 | Portable_Speed | Y | – | – | Y | ? | ? | ? | – / – |
42FC1 | Portable_Control | Y | Y | – | – | ? | ? | ? | – / – |
42FC2 | Portable_ReadBMUVariable | Y | Y | – | – | Y | Y | ? | Y / Y |
42FC3 | Portable_WriteBMUVariable | Y | Y | – | – | – | – | – | – / – |
42FC4 | Portable_CommandBMU | Y | Y | – | – | ? | ? | ? | Y / Y |
42FC5 | Portable_ReadFeatures | – | Y | Y | Y | Y? | Y? | Y? | Y / Y |
42FC6 | Portable_Idle | – | Y | Y | Y | Y? | Y? | Y? | Y / Y |
42FC7 | Portable_Stop | – | Y | – | – | ? | ? | ? | – / – |
42FC8 | Portable_Status | – | Y | – | – | ? | ? | ? | – / – |
42FC9 | Portable_Contrast? | – | Maybe | – | – | ? | ? | ? | – / – |
42FCA | Portable_Refresh? | – | Maybe | – | – | ? | ? | ? | – / – |
42FCB | Portable_Halt? | – | Maybe | – | – | ? | ? | ? | – / – |
42FCC | Portable_SleepTime | – | Maybe | – | – | ? | ? | ? | – / – |
42FCD | Portable_SMBusOp? | – | Maybe | – | – | ? | ? | ? | – / – |
42FCE | Portable_Speed2 | – | – | – | Y | – | – | – | – / – |
42FCF | Portable_WakeTime? | – | – | – | – | – | – | – | – / – |
42FD0 | Portable_EnumerateBMU | – | – | – | Y | – | – | – | – / – |
42FD1 | Portable_ReadBMUVariables | – | – | – | Y | – | – | – | – / – |
This table lists the reason codes supported by Service_Portable.
# | Name | A4 | Stork | 75/CX | HAL | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|---|
0 | PowerDown | Y | Y | – | – | ? | ? | ? | – |
1 | PowerUp | Y | Y | – | – | ? | ? | ? | – |
2 | TidyUp? | – | – | – | – | ? | ? | ? | – |
3 | Freeze | – | Y | – | – | ? | ? | ? | – |
4 | Unfreeze | – | Y | – | – | ? | ? | ? | – |
5 | FreezeRequest | – | Y | – | – | ? | ? | ? | – |
This table lists the supported *Commands.
Name | A4 | Stork | 75/CX | HAL | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|
*FreezeTime | – | Y | – | – | – | – | ? | – |
This table lists the status/control bits supported by Portable_Control.
# | Name | A4 | Stork | 75/CX | HAL | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|---|
0 | Econet power | Y | – | – | – | ? | ? | ? | – |
1 | LCD power | Y | Y | – | – | ? | ? | ? | – |
2 | External display power | Y | Y | – | – | ? | ? | ? | – |
3 | Serial buffer & oscillator | Y | Y | – | – | ? | ? | ? | – |
4 | Dual panel mode | Y | – | – | – | ? | ? | ? | – |
5,6 | Video clock control | Y | – | – | – | ? | ? | ? | – |
7 | Invert video clock | Y | – | – | – | ? | ? | ? | – |
8 | Backlight | Y | Y | – | – | ? | ? | ? | – |
9 | 1/2 extra display lines | Y | – | – | – | ? | ? | ? | – |
10 | 1/2 DRAMs | Y | – | – | – | ? | ? | ? | – |
11 | Sound filters & amplifiers | – | Y | – | – | ? | ? | ? | – |
12 | PCMCIA | – | Y | – | – | ? | ? | ? | – |
13 | Parallel port | – | Y | – | – | ? | ? | ? | – |
14 | FDC oscillator power | Y | Y | – | – | ? | ? | ? | – |
15 | IDE hard disc | – | Y | – | – | ? | ? | ? | – |
16 | Invert LCD palette | Y | Y | – | – | ? | ? | ? | – |
17 | Internal tracker ball in use | – | Y | – | – | ? | ? | ? | – |
18 | External mouse in use | – | Y | – | – | ? | ? | ? | – |
19 | External kb & mouse power | – | Y | – | – | ? | ? | ? | – |
This table lists the BMU variables supported by the BMU SWIs.
Note that there is no HAL column in the below table; apart from variables 12-20, which are deprecated in PortableHAL, the set of supported variables is entirely device-dependent. Well-written programs should query for supported variables at runtime, by attempting to read from the relevant variables (e.g. using Portable_ReadBMUVariables) and looking at the result codes.
# | Name | A4 | Stork | 75/CX | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|
0 | Version & BMU memory map | Y | – | – | Y | – | ? | – / – |
1 | Nominal battery capacity | Y | – | – | Y | – | ? | – / Y |
2 | Measured battery capacity | Y | – | – | Y | – | ? | – / Y |
3 | Used battery capacity | Y | – | – | Y | – | ? | – / – |
4 | Usable battery capacity | Y | – | – | Y | – | ? | – / – |
5 | Reserved | Y | – | – | – | – | ? | – / – |
6 | Charge estimate | Y | – | – | – | – | ? | – / – |
7 | Instantaneous voltage | Y | Y | – | – | – | ? | – / Y |
8 | Instantaneous current | Y | – | – | – | – | ? | – / Y |
9 | Instantaneous temperature | Y | Y | – | – | – | ? | – / Y |
10 | Status flags | Y | Y | – | Y | – | ? | Y / Y |
11 | Charge rate | Y | Y | – | Y | – | ? | – / – |
12 | Charge current | – | Y | – | – | – | ? | – / – |
13 | Discharge current | – | Y | – | – | – | ? | – / – |
14 | Voltage | – | Y | – | Y | – | ? | – / – |
15 | Temperature 1 | – | Y | – | – | – | ? | – / – |
16 | Temperature 2 | – | Y | – | – | – | ? | – / – |
17 | Charge level | – | Y | – | – | – | ? | – / – |
18 | Status flags (as variable 10) | – | Y | – | – | – | ? | – / – |
19 | Input signals | – | Y | – | – | – | ? | – / – |
20 | Battery capacity | – | Y | – | – | – | ? | – / – |
21 | Battery time remaining, seconds | – | – | – | – | Y | ? | Y / Y |
22 | Max battery life in seconds | – | – | – | – | Y | ? | – / – |
23 | Battery percentage remaining | – | – | – | – | – | – | Y / Y |
24 | Charge time remaining | – | – | – | – | – | – | – / Y |
25 | Charge cycle count | – | – | – | – | – | – | – / Y |
26 | Smoothed voltage | – | – | – | – | – | – | – / Y |
27 | Smoothed current | – | – | – | – | – | – | – / Y |
28 | Nominal available capacity | – | – | – | – | – | – | – / Y |
29 | Compensated available capacity | – | – | – | – | – | – | – / – |
This table lists the supported flags in BMU variable 10, variable 18 (which is identical to 10), and by the Portable BMU event. Note that there is some confusion over bit 0; the RISC OS Select documentation incorrectly lists it as “Battery replaced”1, while the Stork module describes it as an extra threshold, “Battery charged”. This latter meaning is used in PortableHAL.
Note that there is no HAL column in the below table; well-written programs should query for supported bits at runtime, via Portable_EnumerateBMU.
# | Name | A4 | Stork | 75/CX | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|
0 | Battery replaced | – | – | – | ? | – | ? | – / – |
– | Threshold 3 (battery charged) | – | Y | – | – | – | ? | Y / Y |
1 | Lid open | Y | Y? | – | ? | – | ? | – / Y |
2 | Threshold 2 (battery flat) | Y | Y? | – | ? | – | ? | – / – |
3 | Threshold 1 (battery low) | Y | Y? | – | ? | – | ? | – / – |
4 | Charge system fault | Y | Y? | – | ? | – | ? | Y / Y |
5 | Charge state known | Y | Y? | – | ? | – | ? | Y / Y |
6 | Battery present | Y | Y? | – | ? | – | ? | Y / Y |
7 | Charger connected | Y | Y? | – | ? | – | ? | Y / Y |
8 | Battery charging | – | – | – | – | – | – | Y / Y |
9 | Battery failing | – | – | – | – | – | – | – / Y |
This table lists the supported Portable_CommandBMU reason codes. Note that although most documentation lists reason codes 2 and 3 as being reserved, the A4 source suggests that they were used to control battery charging.
# | Name | A4 | Stork | 75/CX | HAL | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|---|
1 | Remove power | Y | Y | – | – | ? | ? | ? | Y / Y |
2 | Set part charge | Y | – | – | – | ? | ? | ? | – / – |
3 | Set full charge | Y | – | – | – | ? | ? | ? | – / – |
4 | Set autostart | Y | – | – | – | ? | ? | ? | – / – |
5 | Turn off AC power | – | Y | – | – | ? | ? | ? | – / – |
6 | Turn on AC power | – | Y | – | – | ? | ? | ? | – / – |
7 | Disable BMU event generation | – | Y | – | – | ? | ? | ? | – / – |
8 | Enable BMU event generation | – | Y | – | – | ? | ? | ? | – / – |
This table lists the supported Portable_Stop wakeup reasons.
# | Name | A4 | Stork | 75/CX | HAL | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|---|
1 | Keyboard | – | Y | – | – | ? | ? | ? | – / – |
2 | RTC | – | – | – | – | ? | ? | ? | – / – |
This table lists the various bits returned by Portable_Status.
# | Name | A4 | Stork | 75/CX | HAL | A9 | VirtualRPC | RPCEmu | Pyromaniac (PSUtil/OSX) |
---|---|---|---|---|---|---|---|---|---|
0 | Docked | – | Y | – | – | ? | ? | ? | – / – |
1 | External FDC connected | – | Y | – | – | ? | ? | ? | – / – |
2 | External trackball connected | – | – | – | – | ? | ? | ? | – / – |
3 | Internal display in use | – | Y | – | – | ? | ? | ? | – / – |
1 As some point during the writing of the Select documentation, the wording was that bit 0 indicated that the battery had been `changed` (a typo of `charged`). During a review this got reworded without reference to the original source to indicate that the `battery has been replaced`, as a synonym for `changed`, probably because `battery changed` doesn’t look very nice as a description. Thus confusion. Sorry.