Announcement

Collapse

Forum etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


"PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

VGA 15kHz Output

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    VGA 15kHz Output

    Normally, VGA uses a horizontal sync frequency of 31.5kHz, exactly double the 15.75kHz frequency of the CGA (and NTSC) monitors. For 200 line modes, VGA does double scanning, repeating each line to make a 400 line mode. I believe I read somewhere, a long time ago, that the VGA can be programmed not to do this, in essence giving a signal compatible with NTSC frequency monitors and TVs. In fact, there may even have been a program to allow you to do this. Am I correct?
    Obviously, if this is possible, it is not recommended unless you know for a fact your monitor supports 15.75kHz.
    My Retro Computing and Vintage Gaming Blog : http://nerdlypleasures.blogspot.com/

    #2
    Originally posted by Great Hierophant View Post
    Normally, VGA uses a horizontal sync frequency of 31.5kHz, exactly double the 15.75kHz frequency of the CGA (and NTSC) monitors. For 200 line modes, VGA does double scanning, repeating each line to make a 400 line mode. I believe I read somewhere, a long time ago, that the VGA can be programmed not to do this, in essence giving a signal compatible with NTSC frequency monitors and TVs. In fact, there may even have been a program to allow you to do this. Am I correct?
    It's easy to turn off the double-scanning - that's how "tweak" modes like 320x400x256 and 360x480x256 were done.

    It's also certainly possible to reprogram the CRTC registers on a VGA to generate a 15.75kHz line rate and a 60Hz frame rate. However, the pixel clock will still be 25.175MHz instead of 14.318MHz giving ~75% more pixels per scanline period than CGA, which will result in an image which will be squashed horizontally to give a screen aspect ratio of more like 3:4 than the normal 4:3. I don't know of a program to do this, but I could write one pretty easily if you have a use for it. There wouldn't be a color burst signal so it would be tricky to get composite color out of it but it could be connected to the component RGB inputs on TV pretty easily I think.

    The VGA references I have mention that 25.175MHz and 28.322MHz pixel clocks are available as standard (for 640 pixel and 720 pixel modes respectively) and that there are two external clock lines. If one of those happens to be connected to a 14.318MHz clock then you can display 320x200 and 640x200 modes at 15.75kHz line rate just like a CGA card can (albeit with analogue output and more colours). I don't think this is a standard feature but I'm sure that some VGA cards can do it and some of those that can might come with the kind of program you're thinking of.

    The IBM EGA card does have a 14.318MHz pixel clock input (connected to the ISA OSC signal) and will use it to output a 15.75kHz line rate signal in 200-line modes (in order to be compatible with CGA monitors). However, I don't think IBM expected VGA monitors to be connected to CGA monitors (since it would have required an analogue-to-digital converter anyway) so that backwards compatibility feature probably wasn't implemented by default.

    Comment


      #3
      My idea is to use the VGA 320x200x256 mode 13H resolution and near mode X resolutions like 320x240 on an analog RGB monitor. It seems quite possible if the card was

      The EGA card seems to use the 16.257MHz pixel clock for emulating MDA and the 640x350 monochrome and 640x350x16 modes, and EGA 8x14 text modes.
      Last edited by Great Hierophant; January 18, 2014, 06:44 PM.
      My Retro Computing and Vintage Gaming Blog : http://nerdlypleasures.blogspot.com/

      Comment


        #4
        Originally posted by Great Hierophant View Post
        My idea is to use the VGA 320x200x256 mode 13H resolution and near mode X resolutions like 320x240 on an analog RGB monitor.
        Actually taking a closer look at the standard VGA register values, mode 13H doesn't have "Dot Clock Divide by Two Enable" set in the Clocking Mode Register. So if we set it and use the 28.322MHz clock we should get a pixel rate of 14.161MHz which is probably close enough. Some software might be confused by the frame rate being 60Hz instead of 70Hz but most games will probably work ok. It wouldn't be very difficult to write a TSR that watches for mode 13H getting set and modifies the register values (or just overrides the BIOS video register tables).

        Programs using 320x240 usually set the mode by directly tweaking register values after setting mode 13H with the BIOS, so that would be a bit trickier to get working (you'd also lose the top and bottom of the image in the overscan area). It could be done with a TSR that hooks the keyboard and sets the 15.75kHz 320x240 mode on a particular key combination, but only for games that don't install their own keyboard interrupt hooks or which pass keystrokes back to the previous handler, and of course there is a small danger of monitor damage in the time period when the registers are set wrong.

        If you were writing a custom program to display things on this monitor you could leave "Dot Clock Divide by Two Enable" cleared and get a 640x200x256 mode - that would be cool to see!

        Comment


          #5
          I got inspired and wrote the TSR. Source code on github.

          I haven't actually tried this and I did have to made educated guesses on a few of the register values as there are details of the VGA's CRTC that I have never quite managed to figure out, so handle with a suitable amount of care!
          Last edited by reenigne; January 19, 2014, 03:03 PM. Reason: Fixed markup.

          Comment


            #6
            I've updated the TSR - I think the first version will yield a 31.6kHz line rate and a 121Hz frame rate. The latest version should halve both of those.

            Comment


              #7
              Originally posted by reenigne View Post
              I've updated the TSR - I think the first version will yield a 31.6kHz line rate and a 121Hz frame rate. The latest version should halve both of those.
              Yikes, that sounds like it could destroy a monitor!

              VGA is programmed so that 200 and 350 line modes output at 70Hz and 480 lines output at 60Hz. If it is possible, how do you change it so that it outputs 200 and 350 line modes at 60Hz?
              Last edited by Great Hierophant; January 20, 2014, 08:31 AM.
              My Retro Computing and Vintage Gaming Blog : http://nerdlypleasures.blogspot.com/

              Comment


                #8
                I did actually display a signal with those timings on a composite CRT TV without destroying it a while back. Even more surprising, it gave a mostly stable picture!


                But yes, test it with an LCD or a CRT that you don't care about first.

                Comment


                  #9
                  Originally posted by Great Hierophant View Post
                  VGA is programmed so that 200 and 350 line modes output at 70Hz and 480 lines output at 60Hz. If it is possible, how do you change it so that it outputs 200 and 350 line modes at 60Hz?
                  By programming it differently...

                  There's a register which tells the VGA how many times to output each scanline - normally twice for the (double-scanned, really 400 line) mode 13H. I set it to once for a real 200-line mode. I also programmed it for a total of 262 lines at 15.8kHz rather than the normal 449 lines at 31.5kHz which gives 60Hz instead of 70Hz. A CRTC is really just a bunch counters - one for horizontal and one for vertical, and registers to program what they count up to.

                  My TSR doesn't change anything for 350 line modes (or indeed any mode except 13H) and in fact I'm not even sure a standard VGA will support 350 line modes, but it's certainly possible to create 350 line modes in a similar way - just set the total number of scanlines to 370 and generate scanlines at 18.432kHz (for MDA-compatible 50Hz) or 21.618kHz (for EGA-compatible 60Hz).

                  Comment

                  Working...
                  X