Some RISC OS computers have circuitry which allows the detection of the state of ID pins on the monitor connector. This allows the computer to distinguish between most types of monitor, and adjust its video output accordingly.
To support this, a number of changes have been made to RISC OS:-
a) To simplify the interface, the commands *Configure Mode and *Configure WimpMode have been merged. Both commands control the same CMOS location. Therefore the same screen mode will be selected on startup irrespective of whether the desktop is being used.
b) The commands *Configure Mode/WimpMode, *Configure MonitorType, and *Configure Sync now take the keyword Auto as an alternative to a numeric parameter. If this option is configured, then RISC OS will determine a reasonable default for the particular parameter, based on the type of monitor plugged in.
As the default is for all three to be set to Auto, the user should only have to change the settings if he has a type of monitor which is not recognised properly, or if he wishes to use a different screen mode from the chosen default.
c) The effect of holding certain keys down on power-on is slightly changed:-
Key held down on power-on Settings of CMOS RAM
R or Delete MonitorType Auto, Mode/WimpMode Auto, Sync Auto, and all the rest it used to T or Copy MonitorType Auto, Mode/WimpMode Auto, Sync 0 (separate syncs), and all the rest Keypad 0 to 9 MonitorType 0 to 9 Keypad dot MonitorType Auto, Mode/WimpMode Auto, Sync Auto
d) A new service has been added which allows unknown values of the monitor ID to be recognised by modules and converted into the appropriate monitor type number, sync type and default mode, as follows:-
Service_MonitorLeadTranslation (&76)
in: R1 = service code (&76)
R2 = monitor lead ID (see below)
out: If monitor lead ID is recognised, then the module should set
R1 = 0 (claim service) R3 = default screen mode number to use on this type of monitor R4 = monitor type number to use (as used in *Configure MonitorType) R5 = sync type to use on this type of monitor (0 => separate syncs, 1 => composite sync) All other registers must be preserved.
If the monitor lead ID is not recognised, the module should preserve all registers.
The monitor connector provides 4 ID pins, ID0-ID3. Each of these may be connected to 0v, +5v or to the Hsync pin. The monitor lead ID therefore represents the state of the 4 ID pins by 8 bits as follows:-
Bit 0 Bit 1 State of ID0
Bit 2 Bit 3 State of ID1
Bit 4 Bit 5 State of ID2
Bit 6 Bit 7 State of ID3
0 0 Tied to 0v 1 0 Tied to +5v 0 1 Tied to Hsync 1 1 Inderminate - either the state is fluctuating or machine is not capable of reading the ID
The service is issued when SWI OS_ReadSysInfo is called with R0=1 (see document 'ReadSysInf') if any of the configured Mode/MonitorType/Sync are set to Auto.
If the service is not claimed, then RISC OS checks the monitor lead ID against the following list of recognised IDs:-
Monitor ID pins Monitor type Sync type Default mode0=0v,1=+5v,H=Hsync,
1 1 H X 1 (Multisync) 1 (composite) 27 1 0 1 X 3 (Mono VGA) 0 (separate) 27 0 1 1 X 3 (Colour VGA) 0 (separate) 27 0 1 0 X 4 (Super VGA) 0 (separate) 27 H 1 1 X 0 (TV standard) 1 (composite) 12
For all other ID values RISC OS uses the TV standard monitor settings.