; > Doc.MonLead Title: MonLead Author: Tim Dobson Version: 0.04 Started: 19-Mar-91 Last updated: 24-Apr-92 Status: Incomplete History: 19-Mar-91 TMD Created 19-Mar-91 TMD Updated 10-Apr-91 TMD Added documentation of Service_MonitorLeadTranslation 24-Apr-92 TMD Corrected information to match bodge for LiteOn monitor Automatic detection of monitor type from monitor lead ID pins ============================================================= 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 mode 0=0v,1=+5v,H=Hsync, X=don't care Pin 0 1 2 3 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 1 (Multisync) * 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. * This entry should really be monitor type 4 (Super VGA). However the LiteOn monitor returns this monitor ID, even though it can do the TV standard modes. RISC OS therefore selects monitor type 1 instead, so the TV standard and VGA standard modes can be selected on this monitor.