Running old BASIC programs written in version A2.10

Is there a way to run these older BASIC programs on modern hardware?
I've tried every emulator I can find with no luck. Any attempt to execute the old BASIC.COM or BASICA.COM from my working copy of DOS 2.10 simply locks up whatever machine it's running on.

Any suggestions?


  • The basic launcher included with IBM PC DOS will not run on clone computers. They require IBM's ROM BASIC.

    Download one of the MS-DOS 2.x or 3.x releases that includes software Microsoft BASIC or GWBASIC.

    If the software you are running somehow requires IBM ROM Basic then you will need to use an emulator such as PCE that emulates a genuine IBM 5150/5160/5170.
  • Another method to running IBM BASIC/GW-BASIC programs on modern hardware is Rob Hageman's PC-BASIC, a work alike written in Python. No virtual machine needed. As long as the BASIC program doesn't use Peeks or Pokes, PC-BASIC should handle it.
  • Thanks. I will try this further and hope for the best.
    I did download a full MS-DOS 2.1 which comes with it's own version of BASIC and BASICA.
    When I try to run either of these in the DOSBOX or PC-BASIC emulators, it either gives the error "Reboot required" and then kills the emulator or simply locks just as it does when I try to run it direct on the hardware.

    In any case, thanks for the feedback. I will keep trying.....
  • Exactly which MS-DOS 2.1 download did you use? If they had the PC-DOS basic files with them, then the image is probably messed up, or not compatible with IBM PC.

    Note that different vendors customized basic (or did not include it at all) with their OEM MS-DOS versions.
  • I downloaded MS-DOS 2.1 here from the WinWorld site....

    so, I have to assume they are ok. These downloads did include the BASIC.COM and BASICA.COM files in the download and these are the ones I am trying to execute in the emulator. They just crash and burn.

    Which would you recommend for download as a known working copy of BASICA.COM?
  • Update.... actually, it was PC-DOS 2.10 from here:
  • Using PC-DOS is the problem. The system being used lacks Cassette BASIC so when IBM BASICA calls on Cassette BASIC, the BIOS sends up a message instructing a reboot.

    You have 3 choices:
    Find an emulation that includes complete IBM ROMs including the Cassette BASIC to get PC-DOS BASICA to work
    Load an MS-DOS version with GW-BASIC which works with typical clone BIOSes
    Skip the whole problem of emulation and getting the correct versions of BIOS and DOS by instead loading a program that runs on Windows or Linux that can process GW-BASIC code.
  • Ahhh.... the light comes on lol
    I will try MS-DOS (instead of PC-DOS) and see if I have better luck.

    The real limiter in my case is that I want to run my old BASIC programs that were written on the old PC junior so I just have to suffer and make it all work. GW-BASIC unfortunately is not an option since it doesn't allow the old LINE and CIRCLE commands, etc used in my old programs.

    Thanks for your help... I think I can make this work..
    Have a great weekend!
  • I think you have the relationship backwards. GW-BASIC is IBM BASICA plus Cassette BASIC in a single executable. All the versions of GW-BASIC have LINE and CIRCLE commands that work just like BASICA.

    Some early versions of GW-BASIC have additional screen modes to handle the enhanced CGA those computers shipped with. Obviously, code for the Corona PC using SCREEN 104 won't work on IBM BASICA which has no idea what that SCREEN mode is.

    GW-BASIC 3.22 (with MS-DOS 3.3) is the VGA friendly upgrade to the EGA capable update done to match BASICA on the IBM AT. That should be able to handle any code written for the BASICA supplied with the PC or XT. 3.23 was another minor change in version number sent out with MS-DOS 4.
  • edited July 2020
    As you know, BASIC.COM (Disk BASIC) and BASICA.COM (Advanced BASIC) is for
    IBM PC with CBASIC (Cassette BASIC) ROM.
    To run on modern H/W, PCE, PCem, 86box supports IBM PC 5150/5160/5170 emulation,
    so there is best way to do.
  • Thanks again for the suggestions.
  • Yikes! This is becoming much more of a challenge than I had expected.

    I am using or trying to use the PC-BASIC emulator and to set the emulation to pcjr.
    The documentation says the easiest way is to use a preset with the following command.

    pcbasic --preset=pcjr or tandy or whatever emulation is desired.

    These commands only give "Syntax error" no matter how or which choice is entered.
  • edited July 2020
    Getting syntax error means you tried entering it within PC-BASIC.

    It is necessary to put the option on the command line within a command prompt. I recommend creating batch files within the directory storing the BASIC files to handle each configuration. So, JR.BAT would have

    PCBASIC --preset=pcjr
    Note that the PCBASIC command should include the full path just to keep from mixing with other PC-BASIC versions.

    I believe it is possible to have the command line switches within a shortcut but for some reason didn't get it to work right.

    Be warned that you do not want to have PC-BASIC defaulting to the executable directory as the FILES command would be cluttered with all the Python DLLs.
  • Very helpful advice. Thank you so much for the help. Obviously I'm very new to all this but I'm learning.
    Have a great weekend!
  • Thank to all who provided helpful suggestions. My programs are working once again after many years of collecting dust. Nice to finally see them alive again.
  • Download the PC5001. from my website. It has a functional BASICA 3.4 that runs on modern hardware. It's part of the pcdos basic i uploaded to Vetasware.
  • edited September 2020
    For the BASICA 3.4 software he is talking about, download from this link. Or, I have a 7-Zip archive (should work with PeaZip) file with BASIC and BASICA. It is located on this link.
  • There are two copies of basica in this distro. The one about 60k is from DOS 3.0, is an IBM compile, The larger one 69k is a Microsoft compile. You can tell by the Print RND statement. MS gives 0.121.. where IBM gives 0.715,,,
Sign In or Register to comment.