Configuring Windows XP VMware VM for Siemens STEP 5 DOS

David Krause14 min read
HMI ProgrammingSiemensTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview: Why STEP 5 Requires a DOS or Windows XP Runtime

Siemens STEP 5 is the classic ladder logic and statement list programming environment for the SIMATIC S5 PLC family (S5-90U, S5-95U, S5-100U, S5-115U, S5-135U, S5-155U). The original programming package was distributed as a 16-bit DOS executable set (S5-DOS, order number 6ES5 848-7CA00) with a Windows 3.1/3.11 front-end shell. Later releases (STEP 5 V6.6 and the optional ProTool/ProAgent add-on) target Windows 95, 98, NT 4.0, and Windows XP SP3 but still launch the core S5 components from a DOS command window that is not resizable and that returns to a fixed 80x25 character cell when maximized.

This behavior is by design: the S5 programming kernel uses direct DOS interrupts (INT 21h, INT 10h) and direct parallel-port I/O for the AS511 serial converter. Modern 64-bit Windows releases block those paths, and Windows Vista and later remove the NTVDM subsystem entirely. A virtualized Windows XP (or pure DOS) guest is the only supported way to run STEP 5 on current hardware, and VMware Workstation / Player / Fusion are the most common hypervisors in automation shops because they keep the host fully isolated from the legacy OS.

Engineering note: A native DOS install (MS-DOS 6.22, PC-DOS 7.0, or FreeDOS 1.3) is required only if you intend to drive the AS511 converter through a physical ISA or PCI serial card. If you are using a USB-to-serial adapter (e.g. Siemens 6ES5 734-1BD20 or 6GK1 551-1AA00) on a Windows XP guest, the XP COM port redirector handles I/O and a full DOS install is unnecessary.

Prerequisites

Component Minimum Recommended
Host CPU Intel Core 2 Duo or AMD Athlon X2 with VT-x / AMD-V Intel Core i5/i7 8th gen or newer, VT-x and EPT enabled
Host RAM 4 GB total (1 GB allocated to XP guest) 16 GB total (2 GB allocated to XP guest)
Host OS Windows 10 21H2, macOS 10.15, Linux kernel 5.x Windows 11 23H2, macOS 14, Linux kernel 6.6 LTS
Hypervisor VMware Workstation Player 17.0 (free for personal use) VMware Workstation Pro 17.6.4 or VMware Fusion 13.5
Guest OS Windows XP SP3 32-bit Windows XP SP3 32-bit with KB958215 and KB969898
STEP 5 media Original 3.5" floppy set or ISO image of S5-DOS V6.6 Same, plus the S5W.exe Windows shell installer
Free disk 8 GB 20 GB (NTFS, fixed allocation)
License note: Windows XP is end-of-life since April 8, 2014. The OS is not patched by Microsoft. Run the XP guest on an isolated host-only network (VMnet1) and disable any browser, mail client, or SMB service inside the guest.

Choosing the VMware Edition

Broadcom currently distributes three VMware products relevant to legacy automation workloads. Pick by use case, not by feature count.

Edition License Snapshot support Multiple VMs Use case
VMware Workstation Player 17.6 Free for personal, paid Pro license optional No (read-only in free mode) One at a time Single XP guest on an engineer's laptop
VMware Workstation Pro 17.6.4 Per-seat commercial license Yes, unlimited Yes, configurable Maintenance bench, multiple OS revisions (XP, NT 4.0, DOS) side by side
VMware Fusion 13.5 Personal or commercial license Yes Yes macOS host (Intel Mac or Apple Silicon with translation layer)

Apple Silicon (M1/M2/M3) Macs cannot run x86 Windows XP guests natively in Fusion 13.5; use an Intel Mac or a Windows host. The community-published VMware Workstation 17.6.4 Windows XP guest reference documents the exact settings matrix used here and is a useful companion document for the install sequence below.

Host Hardware Virtualization Configuration

VMware Workstation and Player require hardware-assisted virtualization to be exposed by the host firmware. Confirm before installing the hypervisor.

  1. Reboot the host and enter BIOS/UEFI setup (Del, F2, or F10 depending on vendor).
  2. Locate Intel VT-x or AMD-V and set to Enabled.
  3. On Intel systems, also enable VT-d (directed I/O) if you plan to use a physical USB programming cable passed through.
  4. Disable Hyper-V, Windows Hypervisor Platform, Windows Sandbox, Credential Guard, and Core Isolation on Windows 11 hosts. These Windows hypervisors claim VT-x exclusively and prevent VMware from starting virtual machines.
  5. Boot the host and verify with the VMware vmware-checkvm command (Workstation Pro) or the Player About dialog. Both must report Virtualization enabled.
Windows 11 24H2 and 25H2: The Hyper-V and Virtual Machine Platform features are increasingly enforced by default. If VMware Workstation reports "VMware Workstation and Device/Credential Guard are not compatible", disable them with:

bcdedit /set hypervisorlaunchtype off
Dism /Online /Disable-Feature:Microsoft-Hyper-V-All
Dism /Online /Disable-Feature:VirtualMachinePlatform
then reboot.

Creating the Windows XP Guest

Use a fresh, pre-allocated NTFS virtual disk. Thin provisioning combined with Windows XP's lack of TRIM awareness can cause the .vmdk to fragment badly over time.

  1. Open VMware Workstation Pro 17.6.4 and choose File → New Virtual Machine → Custom (advanced).
  2. Select Installer disc image file (ISO) and point to your Windows XP SP3 ISO. If you have the original CD, select Installer disc instead.
  3. Set Guest OS to Microsoft Windows and Version to Windows XP Professional. VMware does not list XP in Workstation 17; pick Windows XP Professional (32-bit) from the legacy list or use Windows 2000 as a fallback (the kernel and HAL differ but the S5W installer runs identically).
  4. Allocate 1 GB RAM (the XP kernel will not see more than 4 GB regardless).
  5. Set processors to 1 and cores per processor to 1. XP is not SMP-aware; assigning multiple cores triggers the XP HAL to spin on missing APIC vectors.
  6. Set the network adapter to Host-only (VMnet1). Bridged networking exposes the legacy OS to the production LAN and is a security risk.
  7. Create a new virtual disk: SCSI or IDE, capacity 20 GB, Allocate all disk space now, Store virtual disk as a single file.
  8. Finish the wizard, then edit the VMX file and append:

    monitor_control.restrict_backdoor = "TRUE"
    monitor_control.enable_svm = "TRUE"
    svga.vramSize = "16777216"
    These stop the VMware tools backdoor driver from interfering with the AS511 COM-port handshake.

Power on the VM. Press F2 inside the BIOS screen of the VM (the VM has its own 2-second boot menu) and set the CD-ROM as the first boot device. Run a normal XP setup, then install VMware Tools 11.3.5 (the last build with XP guest support) from VM → Install VMware Tools.

Importing an Existing Physical XP Installation

If your maintenance bench still has a physical Windows XP workstation with a licensed STEP 5 install and a calibrated PC adapter (e.g. 6ES5 734-1BD20), the disk-to-VMDK conversion preserves licensing and custom symbol libraries. The most reliable conversion path is:

  1. Use disk2vhd (Sysinternals) on the physical XP host to create a VHDX image of the system partition. Power down the XP host first; online VSS is unreliable on XP.
  2. Copy the VHDX to the VMware host and convert it to VMDK with qemu-img convert -f vhdx -O vmdk -o adapter_type=ide source.vhdx target.vmdk.
  3. Create a new VM in Workstation as in the previous section, but select Use an existing virtual disk and point to the converted VMDK.
  4. Boot the VM. The first XP boot will detect the new HAL; let XP re-detect Plug and Play devices and reboot twice.
  5. Re-activate Windows by phone. The hardware fingerprint change is detected by the XP activation server (which Microsoft no longer operates), so you must call the activation IVR line and read the new installation ID.
License warning: Do not deploy the converted VHDX to multiple machines. Each instance is tied to a single Microsoft product key, and a reactivation storm will result. Clone the VMDK only for the engineer's bench, not for a fleet of laptops.

Installing Siemens STEP 5 in the XP Guest

  1. Mount the S5-DOS installation media as the virtual CD-ROM.
  2. From an XP command prompt, navigate to D:\INSTALL (or your media drive letter) and run INSTALL.EXE. The installer is text-mode and runs entirely inside the 80x25 DOS window.
  3. Accept the default installation directory C:\S5. Avoid paths with spaces; the S5W shell does not quote them and will fail on program launch.
  4. When prompted for the COM port, select COM1 unless you are using a USB-to-serial adapter on COM2. STEP 5 maps the COM port to a fixed I/O address (3F8h for COM1, 2F8h for COM2); this address is set in the VMX:

    serial0.present = "TRUE"
    serial0.yield = "TRUE"
    serial0.fileName = "auto-detect"
  5. Run S5W.EXE to verify the Windows shell launches. The 80x25 DOS sub-window inside S5W is normal; do not try to resize it.
  6. Apply the STEP 5 V6.6 update by running SETUP.EXE from the update media. This step replaces the S5W shell with the modern Common Dialogs wrapper and is required for online connection to S5-155U CPUs.

DOS Window Behavior and Full-Screen Considerations

The S5W shell launches S5.EXE inside a Win32 console window. The console window inherits the 80x25 cell size from %SystemRoot%\System32\cmd.exe and cannot be resized live because S5.EXE queries the screen geometry once at start and re-queries the Win32 console only on window-creation events.

If a full-screen, borderless display is required:

  • Set the XP console properties (right-click the title bar → Properties → Layout) to Width 80, Height 25, Window size: 80x25, and uncheck Let system position window.
  • In the VMX, set svga.maxWidth = "1024" and svga.maxHeight = "768" so VMware always opens the guest display at a fixed resolution. The S5W shell will then fill the entire screen with its 80x25 character cells at 12x24 pixel font.
  • If you need a true full-screen DOS environment (for example, to run S5-DOS standalone against a parallel port AS511), install FreeDOS 1.3 in a second VMware guest and skip Windows entirely. Configure the parallel port in the VMX:

    parallel0.present = "TRUE"
    parallel0.fileName = "auto-detect"
    parallel0.bidirectional = "TRUE"

Shared Folders and USB Passthrough

Two I/O paths matter for moving STEP 5 projects between the XP guest and a modern host: shared folders (for S5 program files) and USB passthrough (for the AS511 cable).

Shared Folders

  1. With the VM powered off, open VM → Settings → Options → Shared Folders.
  2. Click Add, browse to the host folder (for example D:\STEP5_PROJECTS), and enable Always Enabled and Map as a network drive in Windows guests.
  3. Assign drive letter Z: to keep STEP 5 path statements short.
  4. Inside XP, the shared folder appears as \\vmware-host\Shared Folders\STEP5_PROJECTS. The S5W project save dialog can browse this path directly.

USB Passthrough for the AS511 Cable

  1. Plug the Siemens USB-to-serial adapter (6ES5 734-1BD20 or 6GK1 551-1AA00) into the host.
  2. Open VM → Removable Devices → [adapter name] → Connect (Disconnect from Host).
  3. XP detects the FTDI or Siemens-proprietary USB-serial chip and assigns a COM port (typically COM3 or COM4).
  4. Inside STEP 5, set the online interface to that COM port. The handshake (DTR, RTS, DSR) follows the AS511 protocol; no extra driver is required inside XP beyond the one VMware Tools injects.
USB stability tip: If the adapter disconnects after sleep/resume, add usb.restrictDefaultPM = "FALSE" to the VMX. This disables USB selective suspend inside the guest and prevents the AS511 handshake from breaking after a few minutes of idle.

VMware Workstation 25H2 3D Acceleration Issue and Workaround

Starting with the Workstation 25H2 release (May 2025), VMware switched the default 3D graphics renderer from the legacy vmwgfx driver to the dx11 (DirectX 11) host backend. Windows XP, Windows Vista, and Windows 7 guests do not have a DirectX 11 user-mode driver, and the legacy vmwgfx path is no longer compiled into the 25H2 hypervisor build. The result is black or flickering screens, lost mouse capture, and a hang inside S5W.EXE when the shell tries to redraw the project tree.

Workarounds, in order of preference:

  1. Downgrade the hypervisor. Workstation Pro 17.6.4 (build 24810009) is the last build with full XP guest support and the vmwgfx legacy renderer. The community-published VMware Workstation 17.6.4 Windows XP guest reference lists every required setting and is the recommended baseline for STEP 5 deployments.
  2. Disable 3D acceleration per VM. Edit the VMX and set:

    mks.enable3d = "FALSE"
    svga.enable3D = "FALSE"
    This forces the guest to use the XP GDI software renderer. STEP 5 does not require hardware 3D, so performance is unaffected.
  3. Pin the XP VM to 16-color VGA. Inside the XP guest, set Display Properties → Settings → Color quality to Medium (16-bit) or Low (8-bit). The 32-bit color path is what triggers the 25H2 fallback to the DirectX 11 backend.
  4. Run the VM in Fusion 13.5 on a macOS host. Fusion 13.5 still ships the vmwgfx driver and is unaffected by the Workstation 25H2 change.

Verification and Testing

Run the following checks in order. If any step fails, do not proceed to a live PLC connection.

  1. XP boot integrity. The XP desktop must appear within 60 seconds. A hang on agp440.sys or vga.sys indicates a 3D acceleration conflict; reapply Workaround 2 above.
  2. COM port enumeration. Open Device Manager → Ports (COM & LPT). The USB-serial adapter must appear as Silicon Labs CP210x (Siemens 6ES5 734-1BD20) or FTDI USB-SERIAL CH340 (clone cables) with a COM number between 1 and 9. STEP 5 only supports COM1 to COM4 in the legacy shell; remap in Advanced → COM Port Number if needed.
  3. STEP 5 offline test. Launch S5W.EXE, create a new project, and save it to Z:\TEST.S5D. The save dialog must list the shared folder. If the save fails with "Path not found", the VMware shared folder service is not running; restart it with net start vmhgfs.
  4. STEP 5 online test against a simulator. Use the AG 90/95/115U simulator or a known-good S5-95U on the bench. From S5W, choose PLC → Online → Test. The CPU must report RUN or STOP within 3 seconds. A timeout indicates a bad AS511 handshake; check the DTR/RTS jumpers on the cable.
  5. Project round-trip. Open the project in the host editor (Siemens STEP 7 V5.7 with the S5 import converter, or a third-party S5D reader), confirm the symbol table matches, and re-save. The round trip proves the shared folder transport is intact.

Troubleshooting Matrix

Symptom Likely cause Fix
XP boots to black screen after VMware upgrade to 25H2 DirectX 11 host backend incompatible with XP GDI Set mks.enable3d = FALSE or downgrade to 17.6.4
S5W shell opens but program list is blank Project path contains spaces or non-ASCII characters Move project to C:\S5\PROJ and use 8.3 short paths
Online connection times out after 30 s AS511 cable on wrong COM port Verify in Device Manager; remap to COM1..COM4
Shared folder does not appear in XP Explorer VMware Tools not installed or version mismatch Install VMware Tools 11.3.5 from the VM menu
USB cable disconnects after host sleep USB selective suspend Add usb.restrictDefaultPM = FALSE to VMX
"VT-x is not available" on VM start Hyper-V or WSL enabled on host Disable Hyper-V per the Windows 11 25H2 steps above
STEP 5 installer reports "Insufficient privileges" XP UAC disabled but installer launched as standard user Log in as Administrator, or right-click and choose Run as

Reference: Useful Configuration Snippets

The following VMX additions bundle all the Workstation 17.6.4 recommendations for an XP STEP 5 guest. Save them at the end of the .vmx file before first boot.

monitor_control.restrict_backdoor = "TRUE"
monitor_control.enable_svm = "TRUE"
svga.vramSize = "16777216"
svga.maxWidth = "1024"
svga.maxHeight = "768"
mks.enable3d = "FALSE"
svga.enable3D = "FALSE"
serial0.present = "TRUE"
serial0.yield = "TRUE"
serial0.fileName = "auto-detect"
parallel0.present = "TRUE"
parallel0.fileName = "auto-detect"
parallel0.bidirectional = "TRUE"
usb.restrictDefaultPM = "FALSE"
usb.generic.allowHID = "TRUE"

Why does STEP 5 only run inside a non-resizable DOS window?

The S5W shell is a Win32 console host that launches S5.EXE, a 16-bit DOS executable using direct INT 10h and INT 21h calls. The console inherits the 80x25 cell size from cmd.exe at creation time; the S5 kernel does not re-query the geometry. This is by design and cannot be fixed from inside STEP 5. Set the console layout to 80x25 in XP and use a fixed VMX resolution to make the window fill the screen.

Can I run STEP 5 on an Apple Silicon Mac?

No. Apple Silicon (M1/M2/M3) does not provide x86 hardware emulation, and VMware Fusion 13.5 for ARM hosts does not support x86 Windows XP guests. Use an Intel Mac with macOS 12 or earlier, a Windows host with VMware Workstation Pro 17.6.4, or a Linux host with QEMU/KVM as alternatives.

Which VMware version is the last one with Windows XP guest support?

VMware Workstation Pro 17.6.4 (build 24810009) is the last release that ships the legacy vmsgfx 3D driver, the Windows XP version of VMware Tools (11.3.5), and the COM/parallel-port redirector that STEP 5 requires. Workstation 25H2 drops the vmwgfx path and breaks XP, Vista, and Windows 7 guest display drivers.

Do I need a full DOS install or is Windows XP enough?

Windows XP is enough for online programming over a USB-to-serial AS511 adapter. A native DOS install (MS-DOS 6.22, PC-DOS 7.0, or FreeDOS 1.3) is only required if you must drive the AS511 converter through a physical parallel port from a very old PC adapter. The XP COM port redirector handles the USB-to-serial case correctly and is the simpler deployment path.

How do I migrate a physical XP workstation with STEP 5 into a VM?

Power down the physical host and use Sysinternals disk2vhd to capture the system partition as a VHDX. Convert the VHDX to VMDK with qemu-img convert -f vhdx -O vmdk -o adapter_type=ide source.vhdx target.vmdk. Create a new VM in Workstation Pro, attach the converted VMDK to an IDE controller, boot, let XP re-detect Plug and Play devices, and re-activate Windows by phone. Preserve the original product key and STEP 5 license sticker for the activation call.

Back to blog