Changes

Jump to: navigation, search

CRTC

856 bytes added, Yesterday at 15:48
/* CRTC registers */
{| class="wikitable"
|-
!rowspan=2|Register Index!rowspan=2|Register Name!colspan=3|Read/Write!rowspan=2|Range!rowspan=2|CPC Setting!rowspan=2|Notes
|-
|!CRTC 0||Horizontal Total (-!CRTCs 1)||00000000||63||Width of the screen, in characters. Should always be 63 (64 characters). 1 character == 1μs./2!CRTCs 3/4
|-
|10||Horizontal DisplayedTotal (-1)||colspan=3 style="text-align: center;"|Write||00000000||4063||Number Width of the screen, in characters displayed. Once horizontal character count Should always be 63 (HCC64 characters) matches this value, DISPTMG is set to . 1character == 1μs.
|-
|21||Horizontal Sync Position Displayed||colspan=3 style="text-align: center;"|Write||00000000||4640||When Number of characters displayed. Once horizontal character count (HCC) matches this value, DISPTMG is set to start the HSync signal1.
|-
|32||Horizontal and Vertical Sync WidthsPosition||VVVVHHHHcolspan=3 style="text-align: center;"|Write|128+14|00000000|VSync width in scan-lines (Not present on all CRTCs, fixed |46||When to 16 lines on these) ; start the HSync pulse width in characterssignal.
|-
|43||Horizontal and Vertical Total (Sync Widths||colspan=3 style="text-1)align: center;"|Write|x0000000|VVVVHHHH|38|128+14|Height of the screen|VSync width in scan-lines (Not present on all CRTCs, fixed to 16 lines on these) ; HSync pulse width in characters.
|-
|54||Vertical Total Adjust(-1)||xxx00000colspan=3 style="text-align: center;"|Write|0|x0000000|Measured in scanlines|38||Height of the screen, can be used for smooth vertical scrolling on CPCin characters.
|-
|65||Vertical DisplayedTotal Adjust||x0000000colspan=3 style="text-align: center;"|Write|25|xxx00000|Height of displayed screen |0||Measured in characters. Once vertical character count (VCC) matches this valuescanlines, DISPTMG is set to 1can be used for smooth vertical scrolling on CPC.
|-
|76||Vertical Sync PositionDisplayed||colspan=3 style="text-align: center;"|Write||x0000000||3025||When to start the VSync signal, Height of displayed screen in characters. Once vertical character count (VCC) matches this value, DISPTMG is set to 1.
|-
|87||Interlace and SkewVertical Sync Position||CCDDxxIIcolspan=3 style="text-align: center;"|Write|0|x0000000|CC: Cursor Skew (Only in CRTCs 0|30||When to start the VSync signal, 3 and 4). DD: Display Skew (Only in CRTCs 0, 3 and 4). II: Interlace Modecharacters.
|-
|98||Maximum Raster Address (aka Number of Scan Lines) (Interlace and Skew||colspan=3 style="text-1)align: center;"|Write|xxx00000|CCDDxxII|7|0|Maximum scan line address on CPC can hold between |CC: Cursor Skew (Only in CRTCs 0 , 3 and 74). DD: Display Skew (Only in CRTCs 0, higher values' upper bits are ignored3 and 4). II: Interlace Mode.
|-
|109||Cursor Start Maximum RasterAddress (aka Number of Scan Lines) (-1)||xBP00000colspan=3 style="text-align: center;"|Write|0|xxx00000|Cursor signal is not connected to the Gate Array but is provided to the expansion port. B = Blink On/Off; P = Blink Period Control (Slow/Fast). Sets first raster row of character that cursor is |7||Maximum scan line address on to invert.CPC can hold between 0 and 7, higher values' upper bits are ignored
|-
|1110||Cursor End Start Raster||xxx00000Write||Write||Read/Write||xBP00000||0||Cursor signal is not connected to the Gate Array but is provided to the expansion port. B = Blink On/Off; P = Blink Period Control (Slow/Fast). Sets last first raster row of character that cursor is on to invert.
|-
|1211||Display Start Address (High)Cursor End Raster||xx000000Write||48Write||On Amstrad Plus, bit7 Read/Write||xxx00000||0||Sets last raster row of the printer port character that cursor is controlled by bit3 of CRTC R12 (ie. bit11 of Display Start Address)on to invert
|-
|1312||Display Start Address (LowHigh)||00000000Read/Write||0Write||Allows you to offset the start of screen memory for hardware scrollingRead/Write||xx000000||48||On Amstrad Plus, and if using memory from address &0000 with bit7 of the firmwareprinter port is controlled by bit3 of CRTC R12 (ie.bit11 of Display Start Address)
|-
|1413||Cursor Display Start Address (HighLow)||xx000000Read/Write||Write||Read/Write||00000000||0||Allows you to offset the start of screen memory for hardware scrolling, and if using memory from address &0000 with the firmware.
|-
|1514||Cursor Address (LowHigh)||00000000colspan=3 style="text-align: center;"|Read/Write||xx000000||0
|-
|1615||Light Pen Cursor Address (HighLow)||xx000000colspan=3 style="text-align: center;"|Read/Write||00000000||Read Only. On CRTC1, bit6 of Status register goes to 0 when R16 is read
|-
|16||Light Pen Address (High)||colspan=3 style="text-align: center;"|Read||xx000000||||Read Only. On CRTC1, bit6 of Status register goes to 0 when R16 is read|-|17||Light Pen Address (Low)||colspan=3 style="text-align: center;"|Read||00000000||||Read Only. On CRTC1, bit6 of Status register goes to 0 when R17 is read
|-
|}
8,298
edits