On 15 Aug 2012 at 16:15, David Griffith wrote:
The basic problem appears to be that the code makes
use of long ints.
DOS-16 mangles that, giving you only the bottom half.
What are you using for a C compiler? Most 16-bit DOS C compilers and
runtimes handle "long" and "unsigned long" just fine as 32-bit
numbers.
If it's the matter of the source (that 32-bit platforms treat "int"
as 32 bits), consider creating a conditional typedef for the int type-
-define it as "int" for the large platforms and "long" for the 16-
bitters.
--Chuck