Home Technology Microsoft Word for Windows 1.1a, Native X64 Port
Technology

Microsoft Word for Windows 1.1a, Native X64 Port

Key Points

This project is a fully working native Windows x64 port of Microsoft Word for Windows 1.1a, whose historical codename was Opus. It builds the original Word source and resources together with modern replacements for the 16-bit assembly, segmented-memory, and Win16 platform boundaries. The result is the original Word application and user experience running as a 64-bit Windows executable.

This project is a fully working native Windows x64 port of Microsoft Word for Windows 1.1a, whose historical codename was Opus. It builds the original Word source and resources together with modern replacements for the 16-bit assembly, segmented-memory, and Win16 platform boundaries. The result is the original Word application and user experience running as a 64-bit Windows executable. This is not an emulator or a reimplementation using a modern editor control. - 64-bit Windows - Visual Studio 2022 with Desktop development with C++ - A Windows 10 or Windows 11 SDK installed through Visual Studio - CMake 3.25 or newer - PowerShell Clone the repository, configure the included CMake preset, and build it from a PowerShell prompt: git clone https://github.com/jmarshall23/msword.git Set-Location msword\src cmake --preset x64-debug cmake --build --preset x64-debug & ..\bin\WORD1.exe For an optimized build, use the release preset instead: cmake --preset x64-release cmake --build --preset x64-release & ..\bin\WORD1.exe The presets use the Visual Studio 2022 x64 generator. After configuration, the generated solution can also be opened directly from out\MicrosoftWordX64Port.sln ; use WORD1 as the startup project. Run the complete Debug test suite from the repository root: ctest --test-dir .\out -C Debug --output-on-failure Or, when your current directory is src : ctest --test-dir ..\out -C Debug --output-on-failure For a release build, replace Debug with Release . The suite covers the ported x64 runtime, original Word data structures and command tables, process startup, and automated UI workflows including typing, selection, formatting, dialogs, and saving. | Path | Purpose | |---|---| src/Opus/ | Original Microsoft Word/Opus application source and resources | src/OpusEtAl/ | Original supporting tools, libraries, and build inputs | src/OpusProg/ | Historical program documentation | src/port/original/ | x64 compatibility layer, translated routines, and tests | src/port/tools/ | Native replacements for historical build-time tools | src/cmake/ | Resource and source-generation helpers | out/ | CMake cache and generated Visual Studio solution | build/ | Intermediate tools, tests, probes, PDBs, and diagnostics | bin/ | Final executable and runtime files | out , build , and bin are generated locally during configuration and compilation. The original C and resource files remain the authoritative implementation. The port adds only the platform work needed to build and run that code safely on 64-bit Windows: - 16-bit x86 assembly entry points are translated to fixed-width C or C++. - Segmented and double-indirect memory handles are mapped to an x64-safe native runtime. - Win16-specific startup, messaging, graphics, file, and resource behavior is adapted to current Win32 APIs. - Original command, dialog, cursor, bitmap, and other generated assets are rebuilt by native host tools as part of the CMake graph. - Unit, runtime, smoke, and UI tests guard compatibility with the original algorithms and application behavior. CMake inventories the legacy assembly tree but does not compile those modules into native targets. This keeps the historical implementation available as a reference while ensuring all shipped code is valid for AMD64. | Target | Description | |---|---| WORD1 | The native x64 Microsoft Word executable | opus_original_engine | Original Word application engine compiled for x64 | opus_x64_runtime | Native runtime and translated assembly behavior | opus_word1_ui_test | Automated end-to-end UI test driver | legacy_sources | IDE-visible reference collection of the original assembly | Build a specific target with: cmake --build --preset x64-debug --target WORD1 Changes should preserve the original Word behavior while keeping all native interfaces pointer-width safe. Prefer source-equivalent translations of historical routines, isolate unavoidable Windows API adaptation at the port boundary, and add focused tests for newly translated behavior. The historical source files retain their original Microsoft and third-party copyright notices. This repository does not currently include a top-level license file; review the applicable rights before redistributing the source or binaries.
Microsoft (ORG) Windows (ORG) Opus (PERSON) C++ (ORG) Visual Studio (ORG) PowerShell (ORG) WORD1 (PERSON) ctest --test-dir (ORG) Release (ORG) UI (ORG) Historical (ORG) Native (ORG) Resource (ORG)
Originally published by Hacker News Read original →