=> 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
|
|
|