Fix 0X000000C7: AUTO DATASEG Exceeds 64K Error
Old 16-bit app can't run because its data segment exceeds 64KB. A simple compatibility setting or a VM fix works.
Quick answer: Set the program's compatibility mode to Windows 95 or 98, or run it in a 32-bit virtual machine with 16-bit support enabled.
That 0X000000C7 error — full text says "The operating system cannot run this application program" with a note about "AUTO DATASEG EXCEEDS 64k" — shows up when you try to run an old 16-bit Windows program on a modern 64-bit version of Windows. I've seen it most often with late-90s accounting software, custom business tools, and old shareware games. The program was written expecting a 16-bit memory model where its data segment could live inside a 64KB block. But 64-bit Windows doesn't support the Virtual DOS Machine (NTVDM) properly anymore, so the app chokes right at launch. The real fix is either tricking Windows into using an older compatibility mode or moving the app to a system that still runs 16-bit code.
Fix Steps
Step 1: Enable 16-bit Application Support (Windows 10 only)
If you're on a 32-bit version of Windows 10, or a 64-bit version with NTVDM still available, you can turn this on. On Windows 11, this option is gone.
- Press Windows Key + R, type
optionalfeatures, and hit Enter. - Scroll down to Legacy Components and expand it.
- Check the box next to NTVDM. If you don't see it, your system doesn't support it — skip to Step 2.
- Click OK and let Windows install the feature. Restart when prompted.
- After restarting, try launching the app again. You should see it start without the 0X000000C7 error.
Step 2: Set Compatibility Mode to Windows 95 or 98
Even with NTVDM, the app might need a specific compatibility shim. This is often the fastest fix.
- Right-click the program's .exe file and select Properties.
- Go to the Compatibility tab.
- Check Run this program in compatibility mode for:
- From the dropdown, choose Windows 95 first. If that doesn't work, try Windows 98 / Windows Me.
- Also check Run in 640 x 480 screen resolution — it helps apps that expect old screen modes.
- Click Apply, then OK. After clicking Apply you should see the settings saved message briefly.
- Launch the program. The error should be gone.
Step 3: Use the Command-Line Fix (if the above fails)
Sometimes the compatibility tab doesn't set the right flags. You can force a specific memory model.
- Open Command Prompt as Administrator: search for
cmd, right-click, and choose Run as administrator. - Type or paste this command (replace
"C:\path\to\app.exe"with your program's path):reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtual DOS Machine" /v "WowCmdLine" /t REG_SZ /d "C:\path\to\app.exe /M:4" /f - Press Enter. You should see
The operation completed successfully. - Try running the program again. The
/M:4flag forces the VDM to use a 64KB data segment limit.
Alternative Fixes If the Main Fixes Don't Work
If the compatibility mode and registry fix don't help, here's what I've used in the field.
Run the App in a Virtual Machine
This is the most reliable fix. You can't fake a 16-bit environment on 64-bit Windows without NTVDM. Use a VM with a 32-bit guest OS.
- Download and install VirtualBox or VMware Player. Both are free.
- Create a new virtual machine. Choose Windows 98 or Windows XP (32-bit) as the guest OS.
- Install that OS using an ISO or CD you have. You can find Windows 98 ISOs online from abandonware sites — just make sure they're clean.
- Transfer your problem program into the VM (drag and drop works in VirtualBox with Guest Additions).
- Run it there. The error won't appear because the 16-bit subsystem is fully present.
I've had to do this for a client's old inventory system from 1997. After moving it to a Windows 98 VM on their Windows 10 machine, it ran without a hitch for years.
Use WineVDM (Windows 10/11 64-bit)
WineVDM is an open-source reimplementation of NTVDM. It works well on modern systems.
- Go to the WineVDM GitHub page and download the latest release.
- Run the installer. It takes about 30 seconds.
- Right-click your old app's .exe and select Open with WineVDM. Alternatively, you can associate .exe files with WineVDM in its settings.
- The app should launch without the 0X000000C7 error. WineVDM handles the 64K data segment limit correctly.
Prevention Tip
If you regularly work with old 16-bit software, don't rely on compatibility mode on a 64-bit Windows machine. It's a hack. The proper long-term solution is keeping a dedicated 32-bit Windows XP or Windows 98 virtual machine. When the app asks for memory, it gets exactly what it needs. No surprises, no registry tweaks. I keep a base image of Windows 98 SE with all updates installed — when a client brings me an old DOS or Win16 app, I clone that image and install the app. Takes 15 minutes and works every time.
Was this solution helpful?