This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DOS/16M Error: [30] Program must be built -AUTO for DPMI

I trying to re-compile a very, very, very old Project written for the Archimedes Compiler Version 4. It was created by an employee that is no longer with the company. The Target CPU is a Siemens 80535, an enhanced 8051 CPU, and a single 27C512 EPROM. When I run the MAKE File it calls C:\arch4\bin\c-51 (an .EXE file dated 11/14/1990!). I am trying to compile in a DOS window in Windows 2000. I am told that the orignal programmer used a DOS window in Windows 3.0 for compiling. Any help in how to prevent the "DOS/16M Error: [30] Program must be built -AUTO for DPMI" ERROR Message? This Embedded application has no idea what DOS/16M or DPMI is and could never use that functionality.

Parents Reply Children
  • Mike,

    Great Idea!
    I have a Dell notebook.
    I will check it out to see what that involves. Can I stil access (compile from) my C Drive after booting fron Free-DOS ?

    Greg

  • If it's NTFS, you are in trouble. If FAT32, recent freedos versions support it. A Win98 rescue floppy could do the job (with FAT32), if you have one of them around.

    - mike

  • Mike,
    The solution was to run c-51.exe in a c:\windows\system32\COMMAND.EXE (MS-DOS Prompt) window and NOT a c:\windows\system32\CMD.EXE (Command Prompt) window. The CMD.EXE file is different enough from the COMMAND.EXE file to cause the DPMI Error in old DOS applications.

  • Are you sure that's COMMAND.EXE and not COMMAND.COM?

    COMMAND.COM is the original, MS-DOS, 16-bit command interpreter, complete with 640K limit, etc, etc - that's why it needs an extender;
    CMD.EXE is the Win-NT 32-bit command interpreter - a completely different animal (although it provides many of the same commands)

    "This Embedded application has no idea what DOS/16M or DPMI is and could never use that functionality."

    The error has nothing to do with your embedded application - it is being generated by the DOS/16M kludge;
    DOS/16M is complaining about your compiler, and suggesting that you rebuild the compiler executable!

    "'Simple' - now thats funny! :-)"

    Unfortunately, this sort of thing is almost inevitable when trying to run ancient DOS apps on modern Windows - especially where the nastier aspects of EMS, XMS, etc are involved... :-(

  • Andy,
    Yes, you are correct, it is the COMMAND.COM file. I remember that file from the old DOS days (Command.com, Autoexec.bat, Config.sys) I never thought I would be compiling a program using command.com in the year 2003! :-)

    Yes, CMD.EXE and COMMAND.COM are different enough to cause the C-51 compiler to work on one but not the other. I didn't even know command.com was hiding in c:\winnt\system32\ sub-dir on my Windows 2000 computer. It makes a MS-DOS Icon while CMD.exe makes a C:_\ Icon shortcut. I learn something new every day.

    I can also get the Compiler to run under cmd.exe if I use this "command /c c-51 ..."

    I am so happy that it works!

    Greg