Failure of W10 to run programs that run fine in W7 32 bit

Some utility programs I wrote in the early 1980s get an error message in W10 saying a device on my system isn't working. The device on my system must be a function called from NTVDM that Microsoft is planning to remove from future versions of Windows, probably because it supports 16 bit programs, which is what my utilities are. Some of my programs work fine on W10, but the ones that really get it on speed wise get the error message. They are LS, MATCH (like grep, but better), and PPM (like MATCH but for searching and retrieving paragraphs from text files).

Discussion is locked
Reply to: Failure of W10 to run programs that run fine in W7 32 bit
PLEASE NOTE: Do not post advertisements, offensive materials, profanity, or personal attacks. Please remember to be considerate of other members. If you are new to the CNET Forums, please read our CNET Forums FAQ. All submitted content is subject to our Terms of Use.
Reporting: Failure of W10 to run programs that run fine in W7 32 bit
This post has been flagged and will be reviewed by our staff. Thank you for helping us maintain CNET's great community.
Sorry, there was a problem flagging this post. Please try again now or at a later time.
If you believe this post is offensive or violates the CNET Forums' Usage policies, you can report it below (this will not automatically remove the post). Once reported, our moderators will be notified and the post will be reviewed.
- Collapse -
(NT) time to recompile your programs
- Collapse -
What makes you think that?

Hi James,
I used CB86 (Compiled Basic 86) to make the programs. I recompiled them in 2010 when I changed the help screen to reflect an updated address and contact info for me. Recompiling them will not change a thing. Parts of my programs included code from a library of functions by Mike Nunamaker if I'm remembering correctly. His library of code was quite advanced, but whether he called functions that have gone away in W10 is not something that I can know. I do know that they have worked fine since before Windows came into existence, and have continued to work except in 64 bit versions of Windows. Thanks for caring enough to write.

- Collapse -
Re: program

Then it might be time to rewrite your programs. Things that could be done in Basic can be done in other programming languages also.
It should be easier than if you had programmed in a CPU-dependent Assembler.


- Collapse -
Oh, thought it was C+

Do they even have a converter from Basic to C+?

- Collapse -
Interesting idea

The combined CB86 and library code (3rd party) wouldn't convert even if some genius had tried his hand at it. I'm quite proud of them. If you drop your email address, I'll send screen shots of their help, first 50 lines in a CMD/DOS window.

- Collapse -
I couldn't do that

It's been years since I did any coding, the last being batch files and using bat2exe for conversion to executable files, and some scripting. The only compiling I do now is someone else's programs for linux use which don't already come in a rpm or deb package. I googled for Basic to C+ and seems there are some which might help convert 16 bit to 32 bit, which if the conversion works would allow running also in 64 bit systems.

If you want to send, I have email contact in my profile.

I think your easiest use of them today is older windows loaded to a virtual hard drive and running in Virtual Box. It allows you to use both operating systems at the same time, host and guest, and can share files between them using a shared folder, but that has to be through your router. Each system will get local IP address and share folders just like any other shared resource from other users on your LAN. Here you can see my running win3.1 in it while my host system is Mint Linux 17. Also have windows 10 running in Virtual Box, second picture.



- Collapse -
the other image
- Collapse -
images here at CNET

If you right click and choose "view image" you will get the full size image. I ran a command in terminal of Linux showing the system I'm running it all on and my current uptime since last reboot, etc.

- Collapse -
PPM Help screen

Dang, it says invalid img when I try to preview post.  It is a 25 line DOS window.  Do you know if there is a trick to get a PrintScreen into an img file?  They can be included in emails I've sent.  Sorry...

- Collapse -
I think the forum only takes PNG, JPG, BMP and GIF.

I could be wrong but for images I've been using IMGUR to hold them.

- Collapse -
PS. Example image didn't work.
- Collapse -
Sample of help in my PPM

I didn't know you could paste images, so here is my PPM help screen.
I use this to retrieve notes from note files for different topics.  Thanks for your info about a virtual box. Very interesting, but I'm not sure I'll want to go to the effort of setting it up and learning all about it when I may end up restoring from a backup of W7.  The MATCH program is a lot the same, but for lines only.  I'll do an LS screen also.  Actually, this was LS -a to include hidden files.  Great chatting with you!  When I tried to submit is said limit is 7500 characters. I'll try a 25 line screen. I'll try in the other message...

- Collapse -
- Collapse -
Yes. It had to go.

If you dive into what happened over the years, 16 bit legacy is getting locked out, deprecated and more due to security exploits.

US (yes, the big US) have been asking for more security and that means many 16 bit calls are being deprecated and then finally removed.

Authors of apps gripe but WE asked for more security.

- Collapse -
I agree, but...

Thanks for pointing that out. It would still seem to me to be a subject for McAfee and Trend Micro folks to deal with, plus Microsoft, rather than cripple other software. If I end up having to rewrite my programs, they won't be for Windows. It still seems that the 32 bit version of Windows should retain the 16 bit capabilities even if most everybody is going to 64 bit. In the 32 bit version of Windows 7 you have more functionality than in the 64 bit version.

- Collapse -
I wish that were true.

The same API that were deprecated and then removed were done so on both 32 and 64 bit versions of Windows.

My ready example is that old 16bit support for LIM and EMS was finally removed. That killed some apps and things so you hear a few screams but given the decade plus age (it was closer to 2 decades) it wasn't a great loss.

- Collapse -
All my programs (16 bit) work fine on W7 32 bit

They quit working on 64 bit windows, which is why I'm using 32 bit. I have no idea what has happened to W8, which held no interest for me. I like W10, except for its failure to support something, which is keeping my most used programs from working. My Journal accounting program works fine on W10, but there is nothing tuned for speed in it. I haven't tried some tools like Adder and LineStat. I've done the W10 install 4 times, and when it has failed each time, I restore from a backup that I do just before trying W10 again.

I use Acronis True Image for backups. Recently I noticed that the Windows 2016 version was several hundred megabytes in size. I also noticed that the Apple OS version was under 100 megabytes, therefore much more efficient, as I'd expect from a Unix based OS. If I develop new versions, they will be for Apple's OS, not Windows. Mine started life in DOS, and remain oriented to a command line interface.

- Collapse -
Think of market share.

Here I moved to a minimum compiler of VS2008 to stay current. My apps have to work with machines you can get off the shelf at Walmart so W10 and say back to w7 is all good.

I even have a command line C# tool in the set for a client.

The thing is, of the last few hundred PCs I worked on, not one was w7 32 bit. You may be walking away from a larger market.

- Collapse -
Your message supports 32 bit for some

Your observations and data support retention of 16 bit code support in 32 bit Windows. If only a few of us need it, why delete it and piss us off. The 64 bitters won't know or care. They will also be the targets for the malware that is out and about, since that is where the numbers are.

- Collapse -
I thought I covered why a few APIs had to go.

It turned out the the EMS and LIM support lead to privilege escalation exploits.

The current climate is for more security so leaving in this old support would have left big easy gapping security holes which would have meant the end of Windows altogether.

As an author I have to keep current as to what my apps need to do and more.

I know it's hard on some that want to craft software and have it run forever but times change and I move along with it.

--> Here's something I learned early on. Don't rely on 3rd party library code too much, if at all. I got burned on that decades ago so I stopped doing that and write it all. For me, when it breaks, it's mine to fix.

- Collapse -
Reply number 2 after rereading

After rereading your message, I confess I don't know what LIM or EMS is, but you apparently are mistaken about what has been removed from W7 32 bit, since my tools still work and I haven't switched to MACs yet. Or the Sun Workstation I bought years ago, but haven't powered up yet.

- Collapse -
I used those old 16 bit APIs as an example.

Small world it is. I worked with SUN machines for years until the power of the PC dark side won me over. I'm not disagreeing with anything here but noting how we lost Windows APIs over the years and why.

- Collapse -
Yes, Small World.

You may appreciate that I built scrollable help into my command line tools. I don't know of another developer who bothered to do so. It is automatically presented if there were no arguments on the command line. Since I do a lot with text, I use the Semware text editor, DOS version. I think he has a Windows product out now if you might be interested. Superb stuff. Configurable to meet your needs.

- Collapse -
there is a way out

use a virtual system in windows 10 and install an older windows that runs your programs, even windows 98 which would have the smaller footprint. I have some old windows 98 games and software I run in windows 98 within VM's Virtual Box program under Linux Mint. When hooked to a router, you can get two internal IP addresses from it and use shared folders to move data back and forth between the host and the guest system. I've not tried the virtual systems that come with windows 8 and 10, but probably will allow similar capabilities.



"16-bit Software

16-bit programs no longer function on 64-bit versions of Windows. The 64-bit version of Windows just doesn’t contain the WOW16 compatibility layer that allows 16-bit apps to function. Try to run a 16-bit application on a 64-bit version of Windows and you’ll just see a “This app can’t run on your PC” message.

if you do want to run 16-bit applications, you’ll need to install the 32-bit version of Windows 10 instead of the 64-bit version. But you don’t really have to reinstall your entire operating system — instead, you can just install a 32-bit version of Windows inside a virtual machine and run the application there. Or, you can even install Windows 3.1 in DOSBox."

- Collapse -
Here you go
- Collapse -
Re: scrollable help

That's nice indeed.

However, if you are the only user of your program, you probably won't need that help very often. And if you sold it to others, they either stop using it if it doesn't run in Windows 10 (probably few of your customers will find it a compelling reason to not upgrade or take the trouble to install an old OS in a virtual machine) or request you to make a version that is compatible with Windows 10.

Yep, old DOS games don't work either in Windows 10. So the game developers made new games. That's called progress. Progress for most, and painful for some others.


- Collapse -
expanded, himem system

CNET Forums