Extensions to SWI OS_ReadSysInfo in RISC OS 3.0 and later versions

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.