Announcement

Collapse
No announcement yet.

µVGA-II SGC Cursor Function

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

  • µVGA-II SGC Cursor Function

    I recently ordered and received a VGA-II SGC module for testing purposes, with the ultimate goal of it being included in a machine controller design as part of the console hardware. However, I discovered that the module has no apparent support for a cursor, an essential requirement if it is to act as part of the console.

    Does such a function exist and was not documented, or am I out of luck and should look for a different product?

    Also, I noted that while this module has a command for clearing the screen, no similar command exists for clearing from a given point to the end of the screen, or from a given column on a line to the end of the line. While it is possible to simulate these features in software, it would be relatively slow compared to the equivalent being implemented in hardware, plus would be eating up valuable ROM space. Any suggestions, assuming the cursor issue can be resolved?

    Thanks!

  • #2


    You can implement a cursor anyway you like.

    Either an underscore or a block would appear best. The best way to do that would be a filled rectangle that you overwrite with the backgrund color to 'erase' it.

    Similarly you would use a filled rectange of the background color to erase part of the screen.
    Mark

    Comment


    • #3


      ESPsupport wrote: You can implement a cursor anyway you like.

      Either an underscore or a block would appear best. The best way to do that would be a filled rectangle that you overwrite with the backgrund color to 'erase' it.
      I already thought of doing that. Two problems:[list type=decimal][*]How would you move the block without erasing and redrawing it for each new location? That's a lot of fooling around for something that is usually a hardware function in most video display generators. The old CSG 8563 video display controller had a hardware cursor that could be addressed independently of video RAM, and that was a part produced in the 1980s.A real block cursor inverts the character under it. It could be done in software but again, would be laborious to implement. Also, in order for the cursor to flash (essential if the display is a CRT) it would have to be interrupt-driven.[/list type=decimal]This solution to a cursor is way too much work and demands too much code. I've only got 8K of ROM in which to stuff the entire software package.

      Similarly you would use a filled rectange of the background color to erase part of the screen.
      Again way too much work for such a simple task.

      Comment


      • #4


        The old CSG 8563 video display controller had a hardware cursor that could be addressed independently of video RAM, and that was a part produced in the 1980s.
        The keyword there is 'old'.

        For some reason most (nearly all) modern display controllers do not have either scrolling screens or cursors. I guess you can figure out why, but still it is dissappointing methinks.

        A couple of users have implemented terminal type access in GFX. You should be able to find the source in these forums.

        Not only will that be closer to what you want, it will take even less of your 8kb of ROM
        Mark

        Comment


        • #5


          ESPsupport wrote: A couple of users have implemented terminal type access in GFX. You should be able to find the source in these forums.

          Not only will that be closer to what you want, it will take even less of your 8kb of ROM
          I wasn't able to find anything that appeared to be as you described. After studying this problem in depth and carefully reading the entire VGA-II SGC command set in detail, I have concluded that this product will not work as desired in my application. The cursor situation is the problem.

          It is not possible to generate a true cursor in software without knowing what is already on the screen at the cursor's location. As the VGA-II doesn't have a command to read back the character that was previously written to an arbitrary screen location I'd have to simulate that function by maintaining character and attribute maps in RAM solely for the purpose of generating a cursor. A lot of code would be required to do so (not to mention a lot of RAM for the maps), and having to invest that much time and system resources into making up for the lack of a key hardware function seems counterproductive.

          The items I had previously mentioned about clearing to the end of the screen and to the end of a line aren't overly difficult to implement in software (although somewhat cumbersome) and in themselves wouldn't be show-stoppers. This cursor matter is a show-stopper for me. If the VGA-II can be enhanced to include an addressable text mode hardware cursor then I would use it in my project. For now, it appears this device will have to go on the shelf.

          Comment


          • #6


            What I was refering to is here http://4d.websitetoolbox.com/post?id=5442033

            Not sure if the source is in that thread, but you should be able to find it frlom there
            Mark

            Comment

            Working...
            X