Getting 16-bit code to work on Windows 64-bit

Started by astead, November 05, 2005, 10:13:49 PM

Previous topic - Next topic

astead

We have some legacy code that I believe is 16-bit (obviously a newbie).  It works on 32-bit Windows, but doesnt on 64-bit Windows.  Would it be an easy task to get this ported over to work on 64-bit Windows?
Not sure how much (if any) of the code I can post, since it is corporate property, checking to see if I can post it.
I do know the code was Coded and Tested as a COM program assembled by Borland Turbo Assembler v2.01...
The description of the program:
This assembly program takes a bootable floppy and adds the ability
to it to boot to the first hard drive for a specified number of
boots before booting to itself.
Anyone have any ideas?

sluggy

Interesting question.....

First off, you have your terminology wrong - it is not a COM app, it is a .com app. It might seem trivial, but there are lightyears between those two types  :bg

I can't answer your question with any certainty, but i can maybe throw some light on it. The problem is most likely that 64bit versions have no DOS subsystem, which is why your little app won't run. I can't say whether you could port it or not because i don't know what capability is available to the bootstrap type code before Windows has loaded. But if you tell us the purpose of the code (ie is it designed to limit access to something?), then maybe we could suggest another method to achieve the same result on a Win64 system.


MichaelW

DOS apps that do low-level access of a hard disk drive, or that attempt to access certain I/O ports, will not run under Windows 2000 or Windows XP, because NTVDM will reject them, always with an explanation of why AFAIK. It might be worth checking the SYSTEM32 directory for NTVDM.EXE and files that match ntdos*.* . If these files are present then the system probably does support at least some 16-bit DOS apps, and the problem may be with that particular app.

eschew obfuscation