Showing changes from revision #3 to #4:
Added | Removed | Changed
Entry | |
---|---|
R0 | 2 |
Exit | |
---|---|
R0 | Hardware configuration word 0 |
R1 | Hardware configuration word 1 |
R2 | Hardware configuration word 2 |
R3 | Low half of machine ID |
R4 | High half of machine ID |
Word | Bits | Use | Values | Values |
---|---|---|---|---|
0 | 0-7 | Special functions chip type | 0 = none/unspecified | |
1 = IOEB | ||||
0 | 8-15 | I/O controller chip type | 0 = IOC | |
1 = IOMD | ||||
255 = unspecified | ||||
0 | 16-23 | Memory controller chip type | 0 = MEMC1/MEMC1a | |
1 = IOMD | ||||
255 = unspecified | ||||
0 | 24-31 | Video controller chip type | 0 = VIDC1a | |
1 = VIDC20 | ||||
255 = unspecified | ||||
1 | 0-7 | I/O chip type | 0 = none/unspecified | |
1 = 82C710 or similar | ||||
1 | 8-31 | Reserved | 0 | |
2 | 0-7 | LCD controller type | 0 = none | |
1 = type 1 (e.g. A4 portable) | ||||
2 = type 2 (e.g. Stork portable) | ||||
2 | 8-15 | IOMD variant | 0 = IOMD | |
1 = IOMDL (i.e. ARM7500) | ||||
2 | 16-23 | VIDC20 variant | 0 = VIDC20 | |
1 = VIDC2L (i.e. ARM7500) | ||||
2 | 24 | IIC bus speed | 0 = slow (100kHz) | |
1 = fast (400kHz) | ||||
2 | 25 | Clock state during idle | 0 = Keep I/O clocks running during idle | |
1 = Stop I/O clocks during idle | ||||
2 | 26-31 | Reserved | 0 |
The purpose of this call is to check 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.
The content of hardware information word 2 is generally only correct if the system is IOC or IOMD based. Modern HAL based systems typically return 0 for the whole word.
When using this call to read the machine ID, it is recommended that programs first check with OS_ReadSysInfo 12 to see if an extended machine ID is available.
If you only wish to read the old-style 64 bit machine ID, then OS_ReadSysInfo 5 can be used instead.