Difference between revisions of "CRTC"

From BeebWiki
Jump to: navigation, search
m (1 revision)
(Initial rewrite.)
Line 1: Line 1:
[[Category:Hardware]]
+
[[Category:Hardware]]__NOTOC__
<pre>
+
The 6845 CRTC controls how the display is generated. It is written to with
register description
+
[[VDU 23|VDU 23,0]] which also takes account of the current *TV and VDU 23,1
0 - Horizontal total
+
settings. The hardware is directly accessible at &amp;FE00 and &amp;FE01.
1 - Horizontal displayed characters
+
The 6845 is used in the BBC, Master and System computers. Other display
2 - Horizontal sync position
+
hardware is used on the Atom, Electron, and later computers
3 - Horizontal sync width/Vertical sync time
 
4 - Vertical total
 
5 - Vertical total adjust
 
6 - Vertical displayed characters
 
7 - Vertical sync position
 
8 - Interlace/Display delay/Cursor delay
 
9 - Scan lines per character
 
10 - Cursor start line and blink type
 
11 - Cursor end line
 
12 - Screen start address
 
13 - Screen start address
 
14 - Cursor position
 
15 - Cursor position
 
16 - Light pen position
 
17 - Light pen position
 
18 - Cursor width (BBFW)
 
</pre>
 
  
 
Most systems without a hardware 6845 CRTC implement setting the cursor state
 
Most systems without a hardware 6845 CRTC implement setting the cursor state
 
with registers 10 and 11 via VDU 23;10 and VDU 23;11.
 
with registers 10 and 11 via VDU 23;10 and VDU 23;11.
  
 +
==Summary==
 +
<table><tr valign="top">
 +
<td>
 +
* &amp;FE00 - Select register
 +
* &amp;FE01 - Write to register
 +
* [[CRTC#0|0]] - Horizontal total
 +
* [[CRTC#1|1]] - Horizontal displayed
 +
* [[CRTC#2|2]] - Horizontal sync position
 +
* [[CRTC#3|3]] - Sync widths
 +
* [[CRTC#4|4]] - Vertical total
 +
* [[CRTC#5|5]] - Vertical total adjust
 +
* [[CRTC#6|6]] - Vertical displayed
 +
* [[CRTC#7|7]] - Vertical sync position
 +
* [[CRTC#8|8]] - Interlace/Display delay/Cursor delay
 +
* [[CRTC#9|9]] - Scan lines per character
 +
* [[CRTC#10|10]] - Cursor start line and blink type
 +
* [[CRTC#11|11]] - Cursor end line
 +
<td>
 +
* &amp;FE00 - Read from status
 +
* &amp;FE01 - Read from register
 +
* [[CRTC#12|12]] - Screen start address
 +
* [[CRTC#13|13]] - Screen start address
 +
* [[CRTC#14|14]] - Cursor position
 +
* [[CRTC#15|15]] - Cursor position
 +
* [[CRTC#16|16]] - Light pen position
 +
* [[CRTC#17|17]] - Light pen position
 +
* [[CRTC#18|18]] - Cursor width (extension)
 +
* [[CRTC#19|19]]
 +
* [[CRTC#19|20]]
 +
* [[CRTC#19|21]]
 +
* [[CRTC#19|22]]
 +
* [[CRTC#31|31]] - Register 31
 +
</table>
 +
 +
===&FE00 - Register number===
 +
===&FE01 - Register data===
 +
 +
===Register 0 - Horizontal total===
 +
===Register 1 - Horizontal displayed===
 +
===Register 2 - Horizontal sync position===
 +
===Register 3 - Sync widths===
 +
===Register 4 - Vertical total===
 +
===Register 5 - Vertical total adjust===
 +
===Register 6 - Vertical displayed===
 +
===Register 7 - Vertical sync position===
 +
===Register 8 - Interlace/Display delay/Cursor delay===
 +
===Register 9 - Scan lines per character===
 +
===Register 10 - Cursor start line and blink type===
 +
===Register 11 - Cursor end line===
 +
===Register 12/13 - Screen start address===
 +
===Register 14/15 - Cursor position===
 +
===Register 16/17 - Light pen position===
 +
===Register 18 - Cursor width===
 +
===Register 19 -===
 +
===Register 20 -===
 +
===Register 31 - Register 31===
 +
 +
==Extensions==
 +
Extensions to the VDU 23,0 interface, or extended hardware, should probably used
 +
register numbers 128 upwards.
 +
 +
==Hardware differences==
 +
There are several slightly different versions of the 6845. The BBC series
 +
require a 6845S varient as the VDU drivers depend on certain functionality:
 +
* R3 Vertical Sync
 +
* R6 Vertical Displayed any odd/even value, to set to 25 in MODE 3,6,7.
 +
* R8 Display Delay timing for MODE 7
  
 
[[User:Jgharston|Jgharston]] 14:47, 24 December 2007 (UTC)
 
[[User:Jgharston|Jgharston]] 14:47, 24 December 2007 (UTC)
 +
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 03:01, 15 January 2023 (CET)

Revision as of 04:01, 15 January 2023

The 6845 CRTC controls how the display is generated. It is written to with VDU 23,0 which also takes account of the current *TV and VDU 23,1 settings. The hardware is directly accessible at &FE00 and &FE01. The 6845 is used in the BBC, Master and System computers. Other display hardware is used on the Atom, Electron, and later computers

Most systems without a hardware 6845 CRTC implement setting the cursor state with registers 10 and 11 via VDU 23;10 and VDU 23;11.

Summary

  • &FE00 - Select register
  • &FE01 - Write to register
  • 0 - Horizontal total
  • 1 - Horizontal displayed
  • 2 - Horizontal sync position
  • 3 - Sync widths
  • 4 - Vertical total
  • 5 - Vertical total adjust
  • 6 - Vertical displayed
  • 7 - Vertical sync position
  • 8 - Interlace/Display delay/Cursor delay
  • 9 - Scan lines per character
  • 10 - Cursor start line and blink type
  • 11 - Cursor end line
  • &FE00 - Read from status
  • &FE01 - Read from register
  • 12 - Screen start address
  • 13 - Screen start address
  • 14 - Cursor position
  • 15 - Cursor position
  • 16 - Light pen position
  • 17 - Light pen position
  • 18 - Cursor width (extension)
  • 19
  • 20
  • 21
  • 22
  • 31 - Register 31

&FE00 - Register number

&FE01 - Register data

Register 0 - Horizontal total

Register 1 - Horizontal displayed

Register 2 - Horizontal sync position

Register 3 - Sync widths

Register 4 - Vertical total

Register 5 - Vertical total adjust

Register 6 - Vertical displayed

Register 7 - Vertical sync position

Register 8 - Interlace/Display delay/Cursor delay

Register 9 - Scan lines per character

Register 10 - Cursor start line and blink type

Register 11 - Cursor end line

Register 12/13 - Screen start address

Register 14/15 - Cursor position

Register 16/17 - Light pen position

Register 18 - Cursor width

Register 19 -

Register 20 -

Register 31 - Register 31

Extensions

Extensions to the VDU 23,0 interface, or extended hardware, should probably used register numbers 128 upwards.

Hardware differences

There are several slightly different versions of the 6845. The BBC series require a 6845S varient as the VDU drivers depend on certain functionality:

  • R3 Vertical Sync
  • R6 Vertical Displayed any odd/even value, to set to 25 in MODE 3,6,7.
  • R8 Display Delay timing for MODE 7

Jgharston 14:47, 24 December 2007 (UTC) Jgharston (talk) 03:01, 15 January 2023 (CET)