No announcement yet.

PB for DOS on Vista

  • Filter
  • Time
  • Show
Clear All
new posts

  • PB for DOS on Vista

    Has anyone been able to run PB3.5 applications on Vista(32)? The application runs fun on XP with no custom settings required for DOS, but I get an error 7 - out of memory on Vista. Any suggestions?

  • #2
    The only way to use Dos Programs like Power Basic for DOS under Windows XP, VISTA the coming Windows 7, Linux and other 32 bit systems is the use of an Emulator. Probably the best and easiest one to use right now one right now is the GPLed DOSBox Emulator.

    You can find DOSBox here.


    • #3
      I have tried DosBox on OS/2 and it appears to have a very serious issue that I will likely formally report, but have not done so yet. At least under the OS/2 incantation, if you use upper memory, and, for example, load the Btrieve engine there, that is fine for use with the executable that is co-loaded at instantion time with it.

      Yes, it seems that with careful planning you can work this whole DosBox environment into the CGA video world which will give you additional DOS 'standard' memory with it above the 640K mark. Such that if whatever is loaded 'high' with things, you can get up into the actual 600K plus 'standard' memory which I absolutely must have for developmental work, but not necessarily for the user of my work to have.

      However, there appears to be absolutely no way to, for example, run a whole cadre of PB 3.5 DOS programs in a .BAT file which sets everything up, where you exit the initiated executable with the RUN option. As well the whole process of using the SHELL PB function from within a PB 3.5 DOS program to temporarily move to another DOS utility and then back to the initial program, while moving the original program into upper memory as a slush operation, completely fails and cannot be done.

      As best I can tell, the whole DosBox toolset is, at this point, intended to be used to run a single executable, with upper memory, yes, as needed. But that done, the only hope you have is to completely close the DosBox, then if you want to run something else, you have to start all over with this tool.

      This is hopeless for a suite like mine which has over 115 major executables and library modules, with over 1,500,000 lines of PB 3.5 code for the source for all of it at the present time.

      I'd welcome any other thoughts. As noted, I've not attempted to join the DosBox group for any of this. I was just trying my best to find some solution to working with Linux/Unix while still waiting patiently for Bob to release the equivalent of PB 3.5 for Linux/Unix. By instruction of those over-looking my work I am, for all practical purposes, instructed that I cannot use any variation of Windows for anything.....
      Mike Luther
      [email protected]


      • #4
        DOS programs work fine on Windows XP, at least XP Home 32 bit.

        Now DOS apps may not work on 64 bit XP though (I don't know).

        I don't think Vista supports DOS programs anymore though, but I would need to have that verified first.
        Chris Boss
        Computer Workshop
        Developer of "EZGUI"


        • #5
          I use Microsoft Virtual PC 2004 with MS-DOS 6.22 and PowerBasic 3.5, with no problems whatsoever. You may want to use Microsoft Virtual PC 2007, but it does not *officially* support MS-DOS 6.22 anymore. If DOS is your only concern, I would stick with 2004.

          Microsoft Virtual PC is a free product available for download from the Microsoft site.



          • #6
            I use the Vmware Fusion virtual machine on a MacBook Pro, and it handles Windows XP beautifully, and in some ways better than my Dells. I'd bet that it would handle Linux and DOS just as well, and that one could switch between all 4 of these operating systems (including Mac Leopard), on the same machine, almost effortlessly. But I'm no expert, and I have not yet tried DOS or Linux.

            On the few occasions that I have to run in "pure DOS" I have been doing so on via a USB jump drive, and a Dell PC. The jump drive contains a bootable version of DOS (don't think that it's installation was easy, however), and the Dell permits booting from a USB drive (which not all PCs or even all Dells do). Windows XP is installed on the PC, but I am not sure that makes any difference, or that Vista would make any difference either -- i.e., if they aren't running.

            I tried DOSBox for a while, several years ago, but for my purposes it did not hold a candle to either of the above two alternatives.

            There are a number of other virtual machines out there. They are definitely worth checking, if for any reason neither the Microsoft nor the VmWare versions don't fill your bill. Google "DOS virtual machine" for more on this.


            • #7

              I copied the PB35 Folder in a Memory Stick, and inserted it in my son's Dell Inspiron 1420, running Windows Vista Home Basic SP1, to try the IDE and some of my programs.
              The IDE worked fine, and I could compile and run some of my biggest applications.
              All the “text” applications worked fine, but the “graphic” ones gave a message telling the system wasn’t able to run full screen applications, so I guess yours is a “text” one.
              Then I compiled a simple program, just printing the fre(-1) value. It shown 498816 bytes
              Maybe you could reduce a bit the memory requirement of your application to fit in the available space. Maybe you can set the compiler to improve for size, and link just the necessary options (for instance deactivate graphic screens), which I didn’t to get the FRE(-1) value.


              • #8
                re Power Basic and Vista

                I run certain Power Basic 3.5 programs happily in vista - Your problem sounds like a memory allocation issue that XP is dealing with but Vista might require specific Vista settings.
                Some PB3 functions bomb Vista especially Memory access functions.
                In XP and W 2000 you sometimes have to set the "dos box" to allow more memory.

                Large arrays might cause a problem.

                Certain screen functiosn might also not work. Peeks and Pokes will probably cause Vista to have a heart atack


                • #9
                  I've tried this with DOSBOX latest for OS/2 and in the present incantation of DOSBOX have discovered some serious failure issues at least under OS/2. I've never tried this under WIN whatever or LINUX.

                  I did this test to see if I could get around a Phoenix BIOS issue with a 3K stack failure on the the latest MIS SMB9455 industrial computer single board system which won't let me get at the full 700+MB DOS memory I have to have for my PB 3.5 for DOS development work, but not, in some cases for my users, except for less memory for child shell nested utility DOS program use from my own executables I've designed.

                  It seems that DOSBOX has been designed to allow the execution of a single executable program in the DOSBOX client based on a really decent emulation of the DOS operating system and even extended and expanded upper memory that can be configured for this.

                  However, I have been completely unable to use any multiple program .BAT file orchestrated technique that will let me exit a running PB 3.5 DOS program and then load another one and so on in a single DOSBOX incantation! As well, I have been completely unable to make use of the PB 3.5 for DOS SHELL toolset which can exit to another even non-PB executable (or child batch file!), store the 'running' PB 3.5 executable in upper memory, then collapse back into the 'running' PB 3.5 executable.

                  That and preserve the needed environment, exit error code and full memory structure as it was originally created in the DOSBOX emulation.

                  On my list of things to do is to attempt a development thread report post for this in the DOSBOX forum home site for this. But with my huge suite of PB 3.5 work and support for it, I've not had the time to start this thread.

                  Thus if all you are doing is to run a discrete program and nothing else with the emulation, I'd guess things will work fine. But not at all in a complex environment based on what I've found.
                  Mike Luther
                  [email protected]


                  • #10

                    I don't know whether you have tried to run multiple instances of DosBox, running a single program in each one. As far as I have tried, those applications can even share the same data set.


                    • #11
                      Thanks Manual ..

                      > I don't know whether you have tried to run multiple
                      > instances of DosBox, running a single program in each
                      > one. As far as I have tried, those applications can even
                      > share the same data set.

                      I don't think that will work for me specifically because I have to pass exit error code data between shell child tools and my PB 3.5 programs. That as well as handle complete networked server based file systems from the workstation instances of PB 3.5 which have LAN connections opened and handled during the as-loaded and environmentally specific DOS-VDM envelope which handles the entire workstation .BAT and shell file operations, all inter-linked with networked data traffic.
                      Mike Luther
                      [email protected]


                      • #12
                        No problem for me with my DOS PB 3.5 application (using a DOSPRINT printing addon) using XP, VISTA or Windows 7, 32-bit versions. Two clients using it in a 64-bit system have been unable to use it, getting an error message that suggests need for a "64-bit version". I have not had the chance to compile on a 64-bit system -- anybody try that or think that might work?


                        • #13
                          The 64-bit systems will not run 16-bit software natively.
                          Michael Mattias
                          Tal Systems (retired)
                          Port Washington WI USA
                          [email protected]


                          • #14
                            64-bit Versions of Windows (Vista, x64, Windows 7, Server 2003/2008) have no support for 16-bit applications. 32-bit versions of Windows Vista do support 16-bit applications. Your only real choice to is upgrade your 16-bit DOS applications to 32-bit Windows applications.

                            This is not as daunting as it might seem. We have the PowerBASIC Console Compiler. A console is a 32-bit text mode interface built into Windows. The console is also known as the MS-DOS prompt, this is the window that opens with the C:\> prompt. This is where you can type in commands such DIR, COPY, REN. It looks, feels and acts just the like the old DOS that we all remember did. The commands you type in DIR, COPY, REN, etc. are all now 32-bit Windows console application's and not 16-bit DOS applications. What I am trying to get at is that you do not need to create fancy looking dialogs with buttons and graphics to create 32-bit Windows applications. You can create applications that are not limited to 640K, you can DIM x%(10000000), create a string that's 2 million bytes long, and in 32-bit mode, it runs circles around a comparable DOS program. Our PowerBASIC Console Compiler creates 32-bit console applications, but best yet is that it's syntax is 95% compatible with DOS BASIC syntax. You use statement such as PRINT, INPUT, LOCATE, COLOR, etc. just like the DOS BASIC we all are used to. We have almost all of the commands you are used to but also have added many advanced features to the language to take advantage of the power of Windows. Once you get started you will be amazed at how easy it is to move an existing 16-bit DOS application to 32-bit Windows. The Console compiler also has a complete graphics package built in and the ability to work with USB and networked printers.

                            You can read the entire PowerBASIC Console Compiler manual online at There is even a section on upgrading from DOS to 32-bit Windows Console programming section at I think you will find that moving from DOS to the console is relatively painless and will prepare you if you wish to a future move to GUI programming.

                            Here is a small example console program:

                            #COMPILE EXE

                            FUNCTION PBMAIN () AS LONG

                            100 CLS
                            110 PRINT "PBCC Example"
                            120 PRINT
                            130 INPUT "What is your name?", n$
                            140 PRINT
                            150 PRINT "Hello ";n$
                            155 REM Wait for keypress before exiting
                            160 n$ = INKEY$
                            170 IF n$="" THEN 160
                            180 END

                            END FUNCTION

                            I am sure there are only 3 statements that you do not understand in the above code:
                            #COMPILE EXE says that we will be creating an EXE file and not a DLL or other compiled file type.

                            The FUNCTION PBMAIN () AS LONG is the entry point for the program. When Windows runs a program it will look for this function as the starting point to run the program as compared to DOS which starts running that program at the first line.

                            The END FUNCTION says that this is the end of the PBMAIN (entry point) function and when a program reaches the end of the entry point function the program stops running. We did not really need the line 180 END statement as the program would stop running when it reaches the END FUNCTION statement.

                            Also line numbers are not necessary but I used them anyways.

                            Look at the console help file, the console examples in the download section of our website, and the console programing forums and see just how familiar you are with the language.

                            Steve Rossell
                            PowerBASIC Staff


                            • #15
                              No problem for me with my DOS PB 3.5 application (using a DOSPRINT printing addon) using XP, VISTA or Windows 7, 32-bit versions. Two clients using it in a 64-bit system have been unable to use it, getting an error message that suggests need for a "64-bit version". I have not had the chance to compile on a 64-bit system -- anybody try that or think that might work?


                              • #16
                                While I have previously suggested using Microsoft Virtual PC with MS-DOS 6.22 to run PowerBasic 3.5 programs on XP systems and above, I really think that the PowerBASIC Console Compiler is the way to go.

                                Since I discovered the HX DOS Extender, I can develop the application using PowerBASIC Console Compiler, on my XP machine, and put the generated .EXE on the plain DOS machine, and run the 32-bit program in 16-bit DOS.

                                The web site even states that PowerBASIC is compatible with HX.

                                Applications that I have developed with PowerBASIC Console Compiler all run on a plain DOS system, as long as the HX DOS Extender is installed.



                                • #17
                                  Sometimes I wonder just how many members here are still supporting MS/DOS applications.

                                  "Supporting" I would define to include not only making existing applications run on new hardware/operating systems, but also making changes to existing applications to support new business rules.

                                  Then I guess the followup would be, "what percent of these applications are 'on the list' to be re-done as Windows applications?" (Yes I know in the Real World these projects sometimes never happen).

                                  Maybe I can formulate 'poll' which does not result in thirty-eight posts pointing out all the possibilities for which I did not provide a suitable box to be checked...

                                  (I'm guessing there is about zero "new development" for MS-DOS... that is, starting with a blank sheet a paper to create a new application).

                                  Michael Mattias
                                  Tal Systems (retired)
                                  Port Washington WI USA
                                  [email protected]


                                  • #18
                                    I'm using 32 bit Vista on my laptop, which is my main-use computer, and I run quite a few old Dos applications. It wont' do anything full screen but most are fine in a window.

                                    I don't use PB for Dos but I do use Turbo C 2.0 at times. Text based programs run just fine as does the compiler and it's IDE. I generally use qedit instead of the IDE and I use Turbo Debugger. They work fine, too.

                                    I don't use these very often anymore but I do use them and I don't recall any problems.

                                    I also have Sun VirtualBox installed with MSDos 6.22 and I can do full screen DOS graphic stuff in a window with it. I had tried MS Virtual PC, which doesn't officially support Vista Home Premium or Dos and it worked okay. I bought a netbook that came with VirtualBox installed and I liked it a little better so I switched. Both are free.

                                    I also don't have PBCC and my guess is that developing console apps in it would be a LOT more useful than developing Dos apps in TC but I'm just playing around and that isn't an issue for me. When I want something useful in Windows I like it to have a GUI and fit into the OS properly. That said, developing Dos apps has been pretty simple for me so far. That may change when I get a 64 bit OS.



                                    • #19
                                      Yes, VirtualBox:


                                      Think of it as a free VirtualPC or VMWARE... it's GREAT!!!

                                      1) Have your operating system and apps installed on Drive C:
                                      2) Have all your data/code/etc on Drive D:
                                      3) Install VirtualBox on Drive C: (in Program Files folder like normal)
                                      4) Create a VDI with DOS and Dos apps


                                      And, if you want to run an FTP server, serving your Drive D:, then you can install FTP in your Dos VDI and ftp to D: to get what you want...
                                      "Ok, yes... I like pie... um, I meant, pi."


                                      • #20
                                        Personally, I would use DOSBox for running DOS programs under modern Operating Systems.