Announcement

Collapse
No announcement yet.

Graphics modes in PB dos

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

  • Graphics modes in PB dos

    I'm a long-time user of Power Basic for DOS. Even though I have version 3.5, I routinely use only version 3.1.

    I have an application that uses the 640 x 480 x 16 color mode for graphing multi-channel scientific data in real time.

    Does any new(er) version of PB/dos have more advanced graphics capability - for example the ability to set the screen to 800 x 600 or higher?

    If not - why not? Is there any alternative or work-around?


    ------------------

  • #2
    640x480 is the highest resolution provided by standard BIOS graphics
    modes. If you want higher resolution, there may be ways to get there,
    but you'll need to get an add-on library or do some programming.

    DOS-era "SuperEGA" and "SuperVGA" cards often had their own custom
    graphics modes, varying by model and manufacturer. To work with
    these, you'll need a library designed expressly for your particular
    display adapter. Or, you could write your own, if you can find the
    tech docs for that particular adapter.

    If you are dealing with a somewhat later-model machine, you may find
    that the video adapter supports VESA BIOS-compatible graphics modes,
    or comes with a driver that adds such support. The VESA BIOS functions
    provide a standard way for a program to find out what graphics modes
    are supported and how they may be accessed. A generic VESA function
    library is a wonderful thing for such cases.

    Most versions of Windows support extended BIOS graphics modes very
    badly. You may (or may not) be able to use them in a DOS box, if it's
    a full-screen DOS box. I understand that Microsoft has finally added
    a touch of VESA BIOS compatibility to Windows XP, so the situation
    may get better.

    On the other hand, many modern display adapters are designed with
    Windows in mind, and may not provide DOS-level support for extended
    graphics modes at all.

    Check the Download section and Third Party Vendors listings for
    graphics libraries.

    ------------------
    Tom Hanlin
    PowerBASIC Staff

    Comment


    • #3
      Hi Tim,
      I had the same problem two years ago. That's why I decided to
      convert to PB/CC. It is a bit different from DOS, but not so much
      so that you find yourself in La-La land. Then to add a very nice
      Windows-looking graphics touch (including all the higher resolutions)
      with real fonts, I bought the PerfectSync add-on Console Tools and Graphic Tools.
      Now my 32-bit "DOS" program looks and feels just like Windows, only
      much more colorful. Take care, Rolf


      ------------------

      Comment


      • #4
        Hi Tim...

        Take a look in :

        [url]www.zephyrsoftware.com/products/zpb.html[url]

        They have a powerful tool that provides resolutions
        of 256 colors until in 1280 x 1024. It is wonderful!

        The data acquisition in real time is, definitively,
        much more efficient in DOS that in windows.
        Also, supposing that it could be made in windows
        (with a kernel-mode driver and/or with additional hardware),
        it is notably more expensive.

        It would be very important that PowerBasic kept in mind these
        cases and they included graphic routines that support better
        resolutions, at least with those video cards with VESA supports.



        ------------------
        Gustavo Asplanatti
        [email protected]
        Gustavo Asplanatti
        gustavoa at computecsrl.com.ar

        Comment


        • #5
          I've just posted some VESA video routines in the source code forum
          for anybody who's interested. Their not the greatest but, they do
          work on my video card which many other VESA libs I've seen refused
          to do so. They also have the source code so you can make them work
          the way you want. If you have any questions about the routines, I'm
          always lurking about in this forum, so just feel free to ask and I'll
          help if I can.

          Buck


          ------------------

          Comment


          • #6
            I too recommend SuperVGAPB
            www.zephyrsoftware.com/products/zpb.html

            SuperVGAPB can use either VESA or old video chips.
            Unless you have a machine about five or more years
            old, it probably will need a VESA compliant video BIOS
            for SuperVGAPB to work.

            By the way, even in resolution 640x480 SuperVGAPB will
            likely speed up your graphics dramatically.

            If there's a future version of PB-DOS in the works,
            support for VESA would make me buy it. PB could
            license the VESA SuperVGAPB code from Zephyr Software.

            By the way, why do you stick with PB 3.1 ?
            Algorithms - interesting mathematical techniques with program code included.

            Comment


            • #7
              While the quality of such libraries is generally excellent, there are two significant problems to keep in mind:[list=1][*] <U>Unexpected compatibility problems:</U> Such graphics libraries cannot be guaranteed to work 100% with all modern graphics cards, simply because support for some DOS graphics modes is being eroded by the manufacturers in order to reduce manufacturing costs,
              [*] <U>Expected compatibility problems:</U> Such libraries require direct hardware access to be able to program/manage the VGA controller on the graphics card. This generally precludes running under Windows NT/2000/XP because on those platforms, DOS is emulated and hardware is virtualized. IOW, the hardware remains under the control of Windows' Hardware Accessibility Layer (HAL) at all times to ensure system stability and security. [/list=a]

              ------------------
              Lance
              PowerBASIC Support
              mailto:[email protected][email protected]</A>
              Lance
              mailto:[email protected]

              Comment


              • #8
                .

                [This message has been edited by Karl Lessmann (edited September 23, 2003).]

                Comment


                • #9
                  "Expected compatibility problems" is not necessarily an issue, in practice.
                  At best, the old BIOS and DOS graphical APIs barely let you plot individual
                  points. So, any graphical application for DOS is bound to do direct machine-
                  level coding. The NT HAL can generally deal with that.

                  ------------------
                  Tom Hanlin
                  PowerBASIC Staff

                  Comment


                  • #10
                    My understanding is that even Zephyr themselves acknowledge NT/2000/XP compatibility problems (due to the HAL interfering and/or preventing data moving to/from the GPU).


                    ------------------
                    Lance
                    PowerBASIC Support
                    mailto:[email protected][email protected]</A>
                    Lance
                    mailto:[email protected]

                    Comment


                    • #11
                      << even Zephyr themselves acknowledge NT/2000/XP compatibility problems >>

                      If the video card BIOS supports VESA,
                      SuperVGAPB will work. Categorically? I don't
                      know.
                      Algorithms - interesting mathematical techniques with program code included.

                      Comment


                      • #12
                        Originally posted by Karl Lessmann:

                        P.S.
                        Buck, your VESA routines ran just
                        fine on my system under WinME with a
                        SiS 730s Graphics Adapter (16MB VidRam)
                        -Karl

                        Karl
                        Thanks for the feedback. I only have two machines to test stuff
                        on, So it's nice to know that it works on some others too.

                        Buck


                        ------------------

                        Comment


                        • #13
                          All here think of a program written for DOS running in an virtualized windows environment. Previously I made reference to systems of data acquisition in real time where the programs run exclusively in real mode (DOS 6.22, DR DOS, etc.). A lot of people maybe think that this is to use old technology, existing Windows, etc. But regrettably these operating systems don't guarantee me reliability in the moment of the capture of data, since always the final decision has it those "kernel." Of course that one can add additional hardware or to prove with complicated drivers and excessively "expensive."
                          In my case, I use PB DOS 3.5 to registering and monitoring faults in the electric lines of high tension. 10 milliseconds, in these cases is a lot of time to decide if the system assert a trigger or not... Windows cannot give me the security of being able to manage those times freely without any "interference." For what I cannot make those developments in that platform.
                          With these data in mind, it would be extremely interesting that PowerBasic incorporates in its new version, at least: Support TCP/IP and routines of advanced grafication.
                          I have to disposition a "demo" (I don't still complete) of a system of registration of frequency that works under DOS. Under windows also runs... (only the demo)
                          Who wants to see it and to test, just sends me a mail that I send it.
                          It is interesting to see how behaves in real mode and how in windows.
                          The system works together with a card developed by our company, in the demo it is "emulated" for a file of data.
                          This proposal is only to effects that you, users of Power Basic, can see the grafical possibilities in DOS (800x600 with 256 colors), it is not publicity, and maybe to make some critic...
                          Thank !!!



                          ------------------
                          Gustavo Asplanatti
                          [email protected]
                          Gustavo Asplanatti
                          gustavoa at computecsrl.com.ar

                          Comment


                          • #14
                            I wrote a programm in basm6.5/assembler which turns the display to 1280x1024 resolution with 256 colors using VESA. It draws a box, outputs a line of text and returns to 80x25 text mode. When I click on this programm in Windows 98 Explorer, Windows switches to full screen, displays box and text correctly and returns to explorer when the programm has ended.

                            So you can use VESA in DOS programms called from Windows.

                            ------------------

                            Comment


                            • #15
                              Georg

                              Will it also run in a non-full screen WIN session? What does it look
                              like in that scenario?

                              Thanks!


                              ------------------
                              Mike Luther
                              [email protected]
                              Mike Luther
                              [email protected]

                              Comment


                              • #16
                                When I open a DOS window which only covers a part of the screen and call my programm, windows switches to full screen mode. When the programm ends, it returns to the former DOS window.

                                You can change the screen resolution for the entire screen only, so windows has no way to change the screen resolution for a DOS window which does not cover the entire screen.

                                ------------------

                                Comment


                                • #17
                                  originally posted by georg potthast:

                                  you can change the screen resolution for the entire screen only,
                                  so windows has no way to change the screen resolution for a dos
                                  window which does not cover the entire screen.
                                  this makes sense, however i think there is more to this subject.
                                  in particular, at least in win95, if the dos box has <u>not</u>
                                  the focus at the moment when the dos app switches from screen 0
                                  to screen 9, then the window doesn't go full screen and its
                                  resolution gets changed.
                                  this is discussed in forum thread http://www.powerbasic.com/support/pb...read.php?t=112

                                  ------------------
                                  davide vecchi
                                  [email protected]



                                  [this message has been edited by davide vecchi (edited september 23, 2003).]

                                  Comment


                                  • #18
                                    Davide,

                                    using Vesa, I can set the screen to 256 colors with 640x480, 800x600, or 1024x768 resolution. Screen 9 will do 16 colors at 640x350.

                                    I tried my test on a Windows 2000 and a XP computer now. With Windows 2000 I had to set it to full screen first, do get it to switch to the VESA determined resolution. The XP computer did work as the Windows 98 computer and switch to full screen after calling the program.

                                    ------------------

                                    Comment

                                    Working...
                                    X