[Open-graphics] bootstrapping the video mode (outputting VGA text)

James Richard Tyrer tyrerj at acm.org
Tue Aug 8 17:50:43 EDT 2006


Timothy Miller wrote:
> On 8/8/06, James Richard Tyrer <tyrerj at acm.org> wrote:
> 
>> Note that mode 1 only has 350 or 400 vertical lines in the VGA emulation
>> modes and the default vertical is 70 Hz with 900 total lines.  How would
>> our TV out handle this?  OTOH, real CGA character mode (which is in the
>> IBM VGA spec) will work on a TV since it is non-interlaced with 200
>> visible lines and 262 total lines at vertical 60 Hz  .
> 
> Keep in mind that we have a disconnect between what the host thinks
> VGA is doing and what we're actually scanning out of the video
> controller.  The VGA emulator program converts continuously from one
> to the other.  Thus, we can have any physical resolution that we want.
> For the TV, we configure the video controller appropriately and set
> up the converstion program to handle the appropriate size of the
> output framebuffer.
> 
> Also, if you're wondering how to tell if there's a TV on there, you
> just don't need to.  Head 0 has the analog DACs, useful for a
> multisync monitor.  We'll configure that via DDC (typically).  Head 1,
> IIRC, is connected to the TV chip.  We'll just configure the TV
> according to the region (different BIOS images?) on head 2.  Then we
> set up the two (independent) video controllers to scan out the same
> framebuffer at two different resolutions (one or both will use the INC
> instruction in the vc to skip the extra space), and viola!

Problem!  Which you missed.

In video mode 1, (with a real VGA) the VGA output needs to be either a 
350 or 400 lines image while the TV output needs to be 200 lines.  How 
do we handle this?  Do we have the VGA output 480 lines and the TV 
output 240 lines?

This would be fine on my Sony which doesn't have much overscan but ... . 
  I forget, what did CGA do about overscan?  IIRC, you could move the 
left margin in DOS.

Probably best to send 240 to the TV but only use the center 200 lines. 
You are also going to need to increase the H blanking to compensate for 
overscan, or is 640/720 enough?  There is an official spec for overscan 
somewhere.  The usable area is called the "title safe frame".

IAC, if the VGA is outputting more lines than the TV we would need 2 
different character generators or use line doubling for the VGA output. 
  So, yes you do need to know if you are driving a TV unless you have a 
new HDTV that does 480p (accepts regular VGA with no problems).

-- 
JRT


More information about the Open-graphics mailing list