SWI OS_ReadSysInfo has been extended since RISC OS 2.00 - the full specification is as follows:-
SWI OS_ReadSysInfo - Read various system information
in: R0 = reason code
out: Depends on reason code
Reason codes:-
in: R0 = 0
out: R0 = amount of configured screen memory, in bytes
This sub-call is the same as on RISC OS 2.00, with the exception that two bugs in the call have been fixed:-
a) It no longer goes wrong if less than 20K configured on 8K or 16K page size machine;
b) It now properly ignores the top bit of the CMOS location holding the configured value.
in: R0 = 1
out: R0 = Configured Mode/WimpMode
R1 = Configured MonitorType R2 = Configured Sync
Note that from RISC OS 2.09 onwards, the configured Mode and WimpMode have been merged. Both *Configure Mode and *Configure WimpMode control the same CMOS RAM location.
Note also that if any of Mode/WimpMode, MonitorType or Sync have been configured to Auto then the appropriate value for the attached monitor will be returned.
in: R0 = 2
out: R0 = IOEB ASIC presence flag
0 => absent 1 => present (type 1) Other values are reserved for future versions of IOEB which are not backwards compatible.
R1 = 82C710 presence flag 0 => absent 1 => present (type 1) Other values are reserved for future versions of 82C710 which are not backwards compatible.
R2 = LCD ASIC presence flag 0 => absent 1 => present (type 1) Other values are reserved for future versions of LCD ASIC which are not backwards compatible.
R3 = word 0 of unique machine ID R4 = word 1 of unique machine ID
Some RISC OS computers are fitted with a chip providing a machine ID number which is unique to each computer. Machines not fitted with an ID will return zero in both R3 and R4.