I recently downloaded MS-DOS 6 on my laptop and I want to be able to do all the commands on cmd but I need to go convert the .exe to .com I will download any software to do this.
3 Answers
Methinks you're confused slightly on the meaning of the .com and .exe extensions.
- .com is essentially an IMAGE of memory, restricted to less than 64K in size (actually more like 0xFF00 bytes, uh 65,280, technically since first 256 bytes for cmd line and stuff)
- .exe is a linked program, (possibly) made up of parts of libraries and code, resources and whatnot, size is essentially unlimited, although physical memory limits do exist)
BOTH function equally well as commands, in fact, look in your DOS subdirectory, you'll find a scattering of .com files and a bunch of .exe files. Don't confuse the issue by thinking only .com files are COMmands. Just a naming convention.
It does have something to do with the CP/M roots of MSDOS, since program sizes were limited to 64k, and larger programs had to page themselves into memory... those WERE considered COMmands. But thankfully we've grown past the limitations of CP/M... into a whole new set of limitations... but that's another story.
Hopefully this helps.
-
0.S.o0 its ik converting a x644 bit program too x32 bit aka impossibble Jun 18, 2012 at 23:49
-
It's pretty much like converting apples to oranges: impossible, since they're very different.– RenanJun 18, 2012 at 23:51
-
4no, 64-bitness and 32-bitness is a WHOLE 'nother thing. We're just talking about the programs usable in DOS. Although a 64bit version of DOS would be interesting... well interesting in a "ferrari engine in a vw bug" kinda way.– lornixJun 18, 2012 at 23:56
-
@lornix You gave a very technically detailed answer, but you left out the important part: He can't do what he wants. The below answer is far more on point. In fact, by writing "BOTH function equally well as commands ...", you almost lead the questioner to think he might be able to do what he wants.– FranJun 19, 2012 at 0:08
-
he asked about how to convert .exe to .com to use as commands. What the user does past that wasn't specified. If he's trying to USE MSDOS 6 in a Windows environment, he's got other problems. Can only answer what's given, my crystal ball is out for annual maintenance.– lornixJun 19, 2012 at 0:41
Different types of EXE files exist. Some can run on MS-DOS, while others require Windows. Those you can run on MS-DOS would not need any sort of conversion.
EXE files compiled for Windows, even if they accept command-line arguments and generate console output, will not run on DOS. They depend on Windows functionality and APIs (application programming interfaces) to work correctly.
If you try to run a Windows EXE file on DOS, you will get this message:
This program cannot be run in MS-DOS mode.
-
3Generally yes, though the behavior when run from dos can be customized. You can create a hybrid exe that will run as win32 console in windows, and also run on real dos.– psusiJun 19, 2012 at 2:31
-
@psusi, I love dual-exes, but unfortunately they rarely work correctly. I tried combining the Windows calculator from XP with a simple DOS calculator and it did not work.
:-(
Unfortunately there are few tools that can accomplish this (I only have two) and even fewer that can properly support the variations of formats (e.g. Windows 9x+ PE).– SynetechSep 1, 2012 at 21:04
All other answers are good, to add to them would be to tell you that COM executables in the old times of DOS were loaded in L1 Cache, it was what was closest to multitasking in dos times.
Ex: Mouse.com , was loaded in Cache memory, then all other subsequent programs that you were running were able to use the mouse;
386 processor could support 16 to 64 KB of cache
486 processor, an 8 KB cache was integrated directly into the CPU die. This cache was termed Level 1 or L1 cache to differentiate it from the slower on-motherboard, or Level 2 (L2) cache. These on-motherboard caches were much larger, with the most common size being 256 KB.
During the turbulent time of 386 , 486 then x86, some dos games were not running correctly on 486 because not enough L1 cache was available to load all needed COMs from the 386 era, think about , Mouse, Sound, CDROM, MEMCACHE. After a few you had to choose to run the game without sound to be able to play with the mouse for example.
-
Not quite true. Programs loaded into the cache - TSRs or Terminate & Stay Resident programs - didn't have to be .COM. They were often .EXE or .SYS. May 30, 2014 at 12:06
.exe
file?.com
file and recompile it as an.exe
, but I for one have never seen one. (Of course this is assuming you are talking about a DOS executable in the first place.)