Tech Tip: How to run a 16-bit program using the 11.3.x SystemAgent.

Document created by Mark_Hanson Employee on Oct 5, 2015
Version 1Show Document
  • View in full screen mode

Older 16-bit applications can hang the NTVDM subsystem in Windows when executed via the newer 11.3 SystemAgent. This results in an initial job run for a 16-bit application succeeding, while subsequent runs fail due to the hanging NTVDM. Hanging NTVDM processes must be killed before any “16-bit” job runs can again run to success.

All 16-bit applications are single-threaded but modern versions of Windows and the 11.3 SystemAgent are multi-threaded. In order to successfully run a single-threaded 16-bit application via the SystemAgent it is necessary to start the 16-bit program using the following syntax:

start /b /AFFINITY 0x1 <command>

The /b switch run the process in the background which is necessary to capture any stdout or stderr associated with the program execution.

The /AFFINITY 0x1 switch sets the processor affinity for the application which forces it to run single-threaded on a single CPU.