No. 001: MS-DOS vs. 386 Enhanced Versions

This note describes the differences between Image Alchemy for MS-DOS and Image Alchemy/386 for 80386 Protected Mode, and when you would choose one over the other.

Revised by:     Paul H. Yoshimune       May 13, 1994
        Changed to two-column format
Written by:     Paul H. Yoshimune       March 21, 1994 

Rule of Thumb

Which version, MS-DOS or 386 Enhanced, should you buy? If you only work with screen-size images, the MS-DOS version will usually serve you just fine. If, however, you work with very large images, or work with large format plotters such as the HP DesignJet 650C or Encad Novajet, you will most likely need the 386 Enhanced version.

The difference between the MS-DOS and 386 Enhanced versions is that the standard MS-DOS version runs in 16-bit real mode, whereas the 386 Enhanced version runs in 32-bit protected mode.

Size Limitations

The 16-bit version can only access conventional memory, which is defined as the first 640k. This has been a problem with Intel machines from the very start. Even though the successors to the 8088 can run in protected mode, which allows access to all extended/expanded memory in a machine, DOS does not take advantage of this for compatibility reasons. The practical result of this is that the standard version of Alchemy will fail due to lack of memory somewhere around 2,500 pixels wide at true colour. This is not a hard and fast limitation, but will vary depending on the version of DOS, TSRs, physical memory, etc.

The type of conversion being made also has an impact on the size of image which can be dealt with. Some formats, such as JPEG, require that you work on eight (8) scan lines at a time. Others, such as TIFF and Targa, can be dealt with one (1) scan line at a time. Of course, you should be able to convert larger TIFF and Targa files than JPEGs before you run out of memory. Another consideration is the additional work you are asking Alchemy to perform. For example, Heckbert Quantization and dithering require additional memory, above and beyond what the conversion itself actually requires.

The 386 Enhanced version of Alchemy, on the other hand, uses all available extended/expanded memory for conversions. (The standard MS-DOS version will use extended/expanded memory for temporary storage, much like a RAM drive, but that won't let you convert images any larger than normal - just quicker.) Beyond that, it also takes advantage of virtual memory. This means that when you run out of physical memory in your computer, Alchemy will use hard drive space as memory. This is much slower than physical memory, but it does allow you to perform conversions on images basically unlimited in size. (At least, until your hard drive fills...)

Also, since the 386 version uses more efficient 32-bit instructions, processing time is also reduced. Again, this will vary, depending on the computer you're using, and the operations being performed. In general, high quality scaling (types c and d) will see the most dramatic improvement in speed, and 486 computers will see more of an improvement than 386 machines. The latter is because the compiler has been told to optimize for the 486 instruction set.

A caveat: If you are converting a small image, the standard MS- DOS version may actually be faster. Why? Because the startup time for the DOS extender (which switches the computer into protected mode) will offset any speed savings in actual processing time. If you are converting large images, or a number of small images (using wildcards, so Alchemy doesn't have to reload itself constantly), the 386 version will usually be faster.

Please note that if you buy the MS-DOS version, and later decide that you really needed the 386 Enhanced version, you can upgrade for the difference in price between the two, assuming the software hasn't been updated; if it has, you are also liable for update fees.