Re: [stella] 76 cycles

Subject: Re: [stella] 76 cycles
From: Mark De Smet <de-smet@xxxxxxxxxxxxxxx>
Date: Tue, 20 Jun 2000 22:15:36 -0500 (CDT)
> I have a question about the 76 cycles available during the horizontal 
> scanline.  It appears as if this ignores the leftover right overscan area.

I believe this includes all horizontal activity.  The TIA manual is a
little terse on the horizontal timing, however I think it answers
this.  Horizontal timing is done in hardware in the TIA.  It has a counter
with a total count of 228, which includes "68 counts of blank, and 16
counts for horizontal sync and color burst".  The TIA runs off of the
3.58Mhz clock which divides it by three for the processor to run off
of.  228/3 = 76, so the 76 should be the entire horizontal time.  The
WSYNC puts the processor into halt until the counter reaches the count for
the end of the TV image.  The purpose of it is only to syncronize the
code, the horizontal timing takes care of its self.

Although the manual does not specifically specify the overscan, it also
does not specify the horizontal sync, or the color burst.  I think that
for the stella manual they simply ommited that figuring the text was for
programmers only.  So I think it is included in the 'horizontal blank'.

As additional info, here is some stuff I found out thanks to a link from
Paul Hart.

The blanking period is 10.9 us, the video display period is 52.6
us.  sync, color burst and some other stuff is 1.5 + 4.7 + 4.7 = 10.9 and
make up the blanking period by definition.  This makes the entire 'line'
63.5 us.  228 TIA clocks * 1/(3580000Hz) = 63.69 us.  I don't know where
the descrepancy comes from, but it is probably in the crystal, or in the
precision of the numbers I have.

**Thus, yes the 76 machine cycles includes all of the horizontal stuff.

> Is the horizontal blank (beam return) forced at that point or can the 
> programmer allow the scanline to draw through the overscan or something?

The horizontal blank is automatic.  The programmer cannot get anything
displayed during the blank period.  You can try, but it won't work.

> Doesn't the background color do that (extend through right overscan) anyway?

Yes.  The hardware blanks out the graphics output, just like the vertical
blank does, but with horizontal, it is driven by that 228 count counter.

Additionally, the NTSC signals pervent any video data from going out at
this time. (this is where the sync and color burst is.

(BTW, for those that don't know, the color burst is a frequency reference
that is needed by the TV to extract the color information from the video
data)

> I have overheard discussions of not calling WSYNC and using up all 
> available processor time, so I was wondering whether that was time left 
> during the active portion of the screen or after the 76 cycle mark in the 
> overscan.

I am pretty darn sure that you can do this and not use WSYNC.  The time in
question is a total of 76 processor cycles, which includes the display
time, the hblank, hsync, and color burst.

Mark


--
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/

Current Thread