AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
=> R0 =     variable :
       0     Screen size
       1     Mode
       2     Machine Id
       3     82C71x features
       4     Read machine ethernet address
       5     Read machine id raw
       6     Read kernel value
       7     Read info about last unexpected abort (data or prefetch)
       8     Platform class
       9     Read version information
      10     Read OS version
      11     Read debug I/O function pointers
      12     Read extended machine id
      13     Validate key handler
      14     Read IIC bus count

These calls read information about the system.

See PRM 1, page 719.
OS_ReadSysInfo 0
Screen size
=>     R0 =     0
<=     R0 =     screen size

This call reads the configured size of screen memory.
OS_ReadSysInfo 1
Mode
=>     R0 =     1
<=     R0 =     mode
     R1 =     monitor type
     R2 =     sync

This call reads the configured screen settings.
OS_ReadSysInfo 2
Machine id
=>     R0 =     2
<=     R0 =     IOEB ASIC presence flag
     R1 =     82C710 presence flag
     R2 =     LCD ASIC presence flag
     R3 =     low half of Id
     R4 =     high half of Id

This call checks for the presence of various chips, returning flags. It also reads the unique machine ID if a suitable chip is fitted to the computer; if none is, an ID of zero is returned.
OS_ReadSysInfo 3
82C71x features
=>     R0 =     3
<=     R0 =     82C710/82C711 basic features
     R1 =     82C710/82C711 extra features mask (reserved for upwards compatible additional functionality)
     R2 =     extended features 1
     R3 =     extended features 2
     R4 =     extended features 3

This call reads features available in the 82C71x chip.
82C710/82C711 basic features mask
The 82C710 chip family are composed of several sub units. Future chips in the family may have some sub units which are incompatible with earlier versions, while leaving the functionality of other sub units unchanged. This call returns a feature mask, sub fields within which show the 'compatibility level' of each sub unit. Differing values of a sub field indicate incompatible versions of the corresponding sub unit. A sub field of zero indicates that the sub unit is not present.

The values are:
Bits     Sub unit          710     711     SMC '665

0-3     IDE hard disc interface     1     1     1
4-7     floppy disc interface     1     1     1
8-11     parallel port          1     1     1
12-15     1st serial port          1     1     1
16-19     2nd serial port          0     1     1
20-23     chip configuration     1     2     3
24-31     reserved          0     0     0
OS_ReadSysInfo 4
Read ethernet address
=>     R0 =     4
<=     R0 =     bottom 32 bits of Ethernet address (0 for none)
     R1 =     top 16 bits of Ethernet address (0 for none)
OS_ReadSysInfo 5
Read raw id
=>     R0 =     5
<=     R0 =     bottom 32 bits of machine unique id (raw)
     R1 =     top  32 bits of machine unique id (raw)
OS_ReadSysInfo 6 (4.00+)
Read kernel value
=>     R1 = 0
     R2 = item
<=     R2 = value

or

=>     R1 = pointer to item list
     R2 = pointer to result buffer
OS_ReadSysInfo 6 items
item     value

15     address of top of UND stack               (4.00+)
16     address of top of SVC stack               (4.00+)

18     address of kernel MessageTrans block     (Select)
     address of SWI dispatch table               (5.00+)
21     address of timer 0 latch value               (Select)
     address of top of IRQ stack               (5.00+)
22     FastTickerV counts per second               (Select)
     address of sound workspace               (5.00+)
23     address of vector claimants table               (Select)
     address of IRQ semaphore               (5.00+)

64     address of SWI dispatch table               (5.17+)
67     address of top of IRQ stack               (5.17+)
68     address of sound workspace               (5.17+)
69     address of IRQ semaphore               (5.17+)
82     address of Escape status               (5.17+)
Values 18-27 have conflicting use depending of the version used, use the higher numbered allocation where possible.
Unlisted values may exist but are unlikely to be of interest to applications authors.
OS_ReadSysInfo 8 (4.00+)
Read class
=>     R0 =     8
<=     R0 =     platform class
               0 =     unknown
               1 =     Risc PC
               2 =     A7000
               3 =     ARM7500FE (A7000+, RiscStation etc)
               4 =     reserved (Phoebe)
               5 =     HAL
               6 =     reserved (STD)
               7 =     A9home
     R1 =     32 other flags
               bit 0 = podules supported
               bit 1 = PCI supported
               bit 2 = multiple processors supported
               bit 3 = software control over PSU
               bit 4 = OS runs from RAM
     R2 =     mask of which bits in R1 are valid on this class

This call reads information about the class of this platform.
OS_ReadSysInfo 9 (4.00+)
Read version information
=>     R0 =     9
     R1 =     subreason code
<=     R0 =     relevant information, or zero if not implemented

Reads information about which version of RISC OS is installed.
OS_ReadSysInfo 9 reason codes
Value     /Meaning/

0     OS name as string
1     Part number as string
2     Build date as string
3     Dealer name as string
4     Registered to...
5     Registered address
6     Printable OS description string
7     Hardware platform description string
OS_ReadSysInfo 11 (5.18+)
Read debug IO function pointers
=>     R0 =     11
<=     R0 =     Function pointer to void debug_transmit(char);
     R1 =     Function pointer to int debug_receive(void);
OS_ReadSysInfo 12 (5.18+)
Read extended id
=>     R0 =     12
     R1 =     Buffer, or 0 to read size
<=     R0 =     Size of extended id (and buffer filled if appropriate)
OS_ReadSysInfo 13 (5.20+)
Validate key handler
=>     R0 =     13
     R1 =     Key handler address, or 0 to read known flags
<=     R0 =     Key handler flags
OS_ReadSysInfo 14 (5.22+)
Read IIC bus count
=>     R0 =     14
<=     R0 =     Number of buses

[sh-index] Back to list of manuals