http://bugs.winehq.org/show_bug.cgi?id=15686
Summary: Microsoft Word 5.5 for DOS does not install; int 21h ah=41h not fully implemented Product: Wine Version: 1.1.6 Platform: Other URL: http://download.microsoft.com/download/word97win/Wd55_be /97/WIN98/EN-US/Wd55_ben.exe OS/Version: other Status: NEW Keywords: download, Installer Severity: normal Priority: P2 Component: dos AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
According to http://en.wikipedia.org/wiki/Microsoft_word#Word_1981_to_1989, the full version of Microsoft Word 5.5 for DOS is available for free download from Microsoft's servers. The filename is Wd55_ben.exe and the sha1sum is da7c939d6bd7b06d91d3abe6094bd6e424009089.
The app is delivered as a self-extracting zipfile. Letting it unpack itself curiously unpacks everything in the same directory, leading to multiple clashes. Better to unpack it with unzip, then it puts things in multiple directories with no clashes.
Running the unpacked SETUP.EXE fails with SYS2090: The system is unable to load the program. According to http://pages.videotron.com/mikereid/readme.txt, this error means insufficient free memory.
+int21 shows trace:int21:DOSVM_Int21Handler AX=4a0d BX=ffff CX=3456 DX=0000 SI=0000 DI=0000 DS=10cb ES=10cb EFL=000b0206 trace:int21:DOSVM_Int21Handler RESIZE MEMORY segment 10CB to 65535 paragraphs trace:dosmem:DOSMEM_ResizeBlock (0x10cb0,ffff0h,FALSE) trace:int21:DOSVM_Int21Handler failed, error 0 trace:int21:DOSVM_Int21Handler returning: AX=0008 BX=8f35 CX=3456 DX=0000 SI=0000 DI=0000 DS=10cb ES=10cb EFL=000b0207 ... trace:int21:DOSVM_Int21Handler AX=4a08 BX=8f35 CX=3456 DX=0000 SI=0000 DI=0000 DS=10cb ES=10cb EFL=000b0246 trace:int21:DOSVM_Int21Handler RESIZE MEMORY segment 10CB to 36661 paragraphs trace:dosmem:DOSMEM_ResizeBlock (0x10cb0,8f350h,FALSE) trace:int21:DOSVM_Int21Handler failed, error 0 trace:int21:DOSVM_Int21Handler returning: AX=0008 BX=08f3 CX=3456 DX=0000 SI=0000 DI=0000 DS=10cb ES=10cb EFL=000b0247
and then it outputs the SYS2090 message. Evidently it tries to resize a block of memory to the maximum possible size in the DOS memory space (1MB, or 65535 paragraphs); DOS replies "sorry, you can only resize that to 36661 paragraphs"; the app says "OK, mate, give me 36661 paragraphs"; and DOS says "Ha, ha, fooled you, you can't have that after all." I'd abort if it were me, too.
Looking at winedos/int21.c:DOSVM_Int21Handler and winedos/dosmem.c:DOSMEM_ResizeBlock, it looks like the resize functionality isn't yet implemented.