Microsoft Word for Windows 1.1a, Native X64 Port

BruceEel1 pts0 comments

GitHub - jmarshall23/msword: Port of Microsoft Word 1.1a to x64 with extra features for research purposes. · GitHub

/" data-turbo-transient="true" />

Skip to content

Type / to search

Sign in<br>Sign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

jmarshall23

msword

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star<br>37

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>13 Commits<br>13 Commits

src

src

README.md

README.md

View all files

Repository files navigation

Microsoft Word for Windows 1.1a - Native x64 Port

This project is a fully working native Windows x64 port of Microsoft Word for<br>Windows 1.1a, whose historical codename was Opus . It builds the original<br>Word source and resources together with modern replacements for the 16-bit<br>assembly, segmented-memory, and Win16 platform boundaries.

The result is the original Word application and user experience running as a<br>64-bit Windows executable. This is not an emulator or a reimplementation using<br>a modern editor control.

Requirements

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

Build and run

Clone the repository, configure the included CMake preset, and build it from a<br>PowerShell prompt:

git clone https://github.com/jmarshall23/msword.git<br>Set-Location msword\src

cmake --preset x64-debug<br>cmake --build --preset x64-debug

& ..\bin\WORD1.exe

For an optimized build, use the release preset instead:

cmake --preset x64-release<br>cmake --build --preset x64-release<br>& ..\bin\WORD1.exe

The presets use the Visual Studio 2022 x64 generator. After configuration, the<br>generated solution can also be opened directly from<br>out\MicrosoftWordX64Port.sln; use WORD1 as the startup project.

Test

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<br>ported x64 runtime, original Word data structures and command tables, process<br>startup, and automated UI workflows including typing, selection, formatting,<br>dialogs, and saving.

Project layout

Path<br>Purpose

src/Opus/<br>Original Microsoft Word/Opus application source and resources

src/OpusEtAl/<br>Original supporting tools, libraries, and build inputs

src/OpusProg/<br>Historical program documentation

src/port/original/<br>x64 compatibility layer, translated routines, and tests

src/port/tools/<br>Native replacements for historical build-time tools

src/cmake/<br>Resource and source-generation helpers

out/<br>CMake cache and generated Visual Studio solution

build/<br>Intermediate tools, tests, probes, PDBs, and diagnostics

bin/<br>Final executable and runtime files

out, build, and bin are generated locally during configuration and<br>compilation.

How the port works

The original C and resource files remain the authoritative implementation.<br>The port adds only the platform work needed to build and run that code safely<br>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<br>runtime.

Win16-specific startup, messaging, graphics, file, and resource behavior is<br>adapted to current Win32 APIs.

Original command, dialog, cursor, bitmap, and other generated assets are<br>rebuilt by native host tools as part of the CMake graph.

Unit, runtime, smoke, and UI tests guard compatibility with the original<br>algorithms and application behavior.

CMake inventories the legacy assembly tree but does not compile those modules<br>into native targets. This keeps the historical implementation available as a<br>reference while ensuring all shipped code is valid for AMD64.

Useful targets

Target<br>Description

WORD1<br>The native x64 Microsoft Word executable

opus_original_engine<br>Original Word application engine compiled for x64

opus_x64_runtime<br>Native runtime and translated assembly behavior

opus_word1_ui_test<br>Automated end-to-end UI test driver

legacy_sources<br>IDE-visible reference collection of the original assembly

Build a specific target with:

cmake --build --preset x64-debug --target WORD1

Contributing

Changes should preserve the original Word behavior while keeping all native<br>interfaces pointer-width safe. Prefer source-equivalent translations of<br>historical routines, isolate unavoidable Windows API adaptation at the port<br>boundary, and add focused tests for newly translated behavior.

Copyright

The historical source files retain their original Microsoft and...

original build word cmake windows native

Related Articles