home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / system / a249_1 / Doc / A540Extend
Text File  |  1992-03-01  |  4KB  |  107 lines

  1.  
  2. Additions to the mode extension system for A540 and similar machines
  3. ====================================================================
  4.  
  5. This document describes extensions to the RISC OS mode extension system for
  6. machines which have programmable VIDC clock speeds and sync polarities, such
  7. as the A540. Familiarity with the RISC OS 2.00 mode extension system is
  8. assumed (this is described in the existing Programmer's Reference Manual).
  9.  
  10. The A540 has extra hardware to allow the selection of different VIDC clocks
  11. and to determine the polarity of the sync lines. VIDC uses its clock
  12. together with a set of internal dividers to provide a range of pixel rates.
  13.  
  14. The format of the "VIDC list" returned from Service_ModeExtension (&50) has
  15. been extended to allow the pixel rate and sync polarities to be specified.
  16.  
  17. On original Archimedes machines, the VIDC clock is fixed at 24MHz, and the
  18. pixel rate is only determined by VIDC's internal dividers, as specified in
  19. bits 0 and 1 of the Control Register (VIDC address &E0). This would be
  20. stored in the VIDC list as a word of the form &E00000xx.
  21.  
  22. RISC OS now supports two different format VIDC lists.
  23.  
  24. The original (type 0) VIDC list format is as follows:-
  25.  
  26.         Offset          Value
  27.  
  28.         0               0
  29.         4               VIDC base mode
  30.         8               VIDC parameter
  31.         12              VIDC parameter
  32.         ..              ..
  33.         n               -1
  34.  
  35. The new (type 1) VIDC list format is as follows:-
  36.  
  37.         Offset          Value
  38.  
  39.         0               1
  40.         4               VIDC base mode
  41.         8               VIDC parameter
  42.         12              VIDC parameter
  43.         ..              ..
  44.         n               -1
  45.         n+4             Extended parameter
  46.         n+8             Extended parameter
  47.         ..              ..
  48.         m               -1
  49.  
  50. where extended parameters are of the form
  51.  
  52.         (0 << 24) + (pixel rate in kHz)
  53.  
  54. or
  55.  
  56.         (1 << 24) + (sync polarity)
  57.  
  58. or
  59.  
  60.         (2 << 24) + (true VIDC clock rate in kHz)
  61.         ** This option available only from RISC OS 3.03 onwards **
  62.  
  63. The sync polarity is defined as follows:-
  64.  
  65.         bit 0 = 0 => HSync +ve (as on a standard Archimedes)
  66.               = 1 => HSync -ve
  67.  
  68.         bit 1 = 0 => VSync +ve (as on a standard Archimedes)
  69.               = 1 => Vsync -ve
  70.  
  71.         bits 2..23 must be zero
  72.  
  73. A pixel rate specifier in a type 1 VIDC list will override the settings of
  74. bits 0 and 1 of a Control Register specifier in the main body of the list.
  75. If no pixel rate is specified, then the VIDC clock is set to 24MHz, and the
  76. settings of the divider in the Control Register are used as normal.
  77.  
  78. The A540 hardware provides the following pixel rates:-
  79.  
  80.         24000 kHz, 25175 kHz, 36000 kHz         with a multiplier of 2/2
  81.         16000 kHz, 16783 kHz, 24000 kHz         with a multiplier of 2/3
  82.         12000 kHz, 12587 kHz, 18000 kHz         with a multiplier of 1/2
  83.          8000 kHz,  8392 kHz, 12000 kHz         with a multiplier of 1/3
  84.  
  85. If the pixel rate specified is not achievable with the hardware on the
  86. machine, the nearest available pixel rate is used.
  87.  
  88. Note: when specifying a pixel rate for a hi-res-mono display, the pixel rate
  89. specified should be the actual pixel rate divided by 4, ie 24000 not 96000.
  90.  
  91. If no sync polarity is specified, a default of 0 is used (ie the same as a
  92. normal Archimedes).
  93.  
  94. The true VIDC clock rate specifier (only on RISC OS 3.03 or later) is
  95. intended to be used in systems where the clock rate fed to VIDC is under the
  96. control of some external device, rather than being selected by the clock
  97. select latch.
  98.  
  99. The values programmed into the clock select latch and the VIDC divider are
  100. still determined either from the control register specifier or a pixel rate
  101. specifier assuming the same range of clock speeds as on the A540, but the
  102. VIDC clock rate specifier is used to determine the video memory rate,
  103. which in turn determines the VIDC FIFO Request Pointer values (bits 4 and 5
  104. of the VIDC control register). The VIDC clock rate specifier is also stored
  105. in VDU variable VIDCClockSpeed (&AC), which is used by the SoundDMA module
  106. to determine the VIDC Sound Frequency Register value.
  107.