Casio PV-1000/Video: Difference between revisions

From Obscure Wiki
Jump to navigationJump to search
(Created page with "The PV-1000's video timing divides a frame into 288 pixels horizontally by 262 scanlines. The pixel clock is the crystal divided by 4, or roughly 4.47MHz. This corresponds to an exact pixel aspect ratio of 48:35, or approximately 4:3. This makes the horizontal sync rate the quite-slow 15536Hz and the vertical sync rate the almost-normal 59.299Hz Of those 288 pixels, 224 contain actual video content. These 224 pixels are already significantly wider than the majority of c...")
 
(adapt NESwiki video timing diagram)
 
(One intermediate revision by the same user not shown)
Line 3: Line 3:
Of those 288 pixels, 224 contain actual video content. These 224 pixels are already significantly wider than the majority of contemporary or even modern TVs can display.
Of those 288 pixels, 224 contain actual video content. These 224 pixels are already significantly wider than the majority of contemporary or even modern TVs can display.


Of the 262 scanlines, 192 contain actual video content. This is significantly shorter than the majority of TVs display. The ULA draws a solid color of the programmers' choice for some number of scanlines above and below.
Of the 262 scanlines, 192 contain actual video content. This is significantly shorter than the majority of TVs display. The ASIC draws a solid color of the programmers' choice for 26 scanlines each above and below.


On each active scanline, the ULA asserts /BUSREQ for 248 pixels so that the Z80 gets out of the way in time for the ULA to drive the video.
On the 192 active scanlines, the ASIC asserts /BUSREQ for 248 pixels so that the Z80 gets out of the way in time for the ASIC to drive the video, starting 32px before.


Unfortunately, we don't yet have any more specific timing information. Research is on-going...
[[File:Casio PV-1000 Video Timing (only).png|right|frame|A visualization of the tables to the left, starts with black for horizontal sync]]
 
Rendering scanlines (n=244; 0-217 and 236-261):
 
{| class="wikitable"
! ■ !! name !! start !! duration !! notes
|-
| style="color:#000" | ■ || horizontal sync || 0 || 22
|-
| style="color:#ff0" | ■ || colorburst || 22 || 14
|-
| style="color:#333" | ■ || back porch, continued (black) || 36 || 16
|-
| style="color:#0f0" | ■ || active ||rowspan=2| 52 ||rowspan=2| 224 || On scanlines 0-191, contents drawn according to fetches.
|-
| style="color:#080" | ■ || border || On scanlines 192-217 and 236-261, contents drawn according to border color register.
|-
| style="color:#333" | ■ || front porch (black) || 276 || 12
|}
 
Post-render blanking scanlines (n=3; 218-220):
 
{| class="wikitable"
! ■ !! name !! start !! duration !! notes
|-
| style="color:#000" | ■ || horizontal sync || 0 || 22
|-
| style="color:#ff0" | ■ || colorburst || 22 || 14
|-
| style="color:#333" | ■ || blanking || 36 || 252
|}
 
Vertical sync scanlines (n=3; 221-223):
 
{| class="wikitable"
! ■ !! name !! start !! duration !! notes
|-
| style="color:#000" | ■ || horizontal sync || 0 || 22
|-
| style="color:#000" | ■ || vertical sync and colorburst (but colorburst ignored by component-to-chroma modulator) || 22 || 14
|-
| style="color:#000" | ■ || vertical sync || 36 || 230
|-
| style="color:#333" | ■ || vertical sync separator (black) || 266 || 22
|}
 
Pre-render blanking scanlines (n=12; 224-235):
 
{| class="wikitable"
! ■ !! name !! start !! duration !! notes
|-
| style="color:#000" | ■ || horizontal sync || 0 || 22
|-
| style="color:#ff0" | ■ || colorburst || 22 || 14
|-
| style="color:#333" | ■ || blanking || 36 || 252
|}

Latest revision as of 01:26, 24 May 2023

The PV-1000's video timing divides a frame into 288 pixels horizontally by 262 scanlines. The pixel clock is the crystal divided by 4, or roughly 4.47MHz. This corresponds to an exact pixel aspect ratio of 48:35, or approximately 4:3. This makes the horizontal sync rate the quite-slow 15536Hz and the vertical sync rate the almost-normal 59.299Hz

Of those 288 pixels, 224 contain actual video content. These 224 pixels are already significantly wider than the majority of contemporary or even modern TVs can display.

Of the 262 scanlines, 192 contain actual video content. This is significantly shorter than the majority of TVs display. The ASIC draws a solid color of the programmers' choice for 26 scanlines each above and below.

On the 192 active scanlines, the ASIC asserts /BUSREQ for 248 pixels so that the Z80 gets out of the way in time for the ASIC to drive the video, starting 32px before.

A visualization of the tables to the left, starts with black for horizontal sync

Rendering scanlines (n=244; 0-217 and 236-261):

name start duration notes
horizontal sync 0 22
colorburst 22 14
back porch, continued (black) 36 16
active 52 224 On scanlines 0-191, contents drawn according to fetches.
border On scanlines 192-217 and 236-261, contents drawn according to border color register.
front porch (black) 276 12

Post-render blanking scanlines (n=3; 218-220):

name start duration notes
horizontal sync 0 22
colorburst 22 14
blanking 36 252

Vertical sync scanlines (n=3; 221-223):

name start duration notes
horizontal sync 0 22
vertical sync and colorburst (but colorburst ignored by component-to-chroma modulator) 22 14
vertical sync 36 230
vertical sync separator (black) 266 22

Pre-render blanking scanlines (n=12; 224-235):

name start duration notes
horizontal sync 0 22
colorburst 22 14
blanking 36 252