Compiling Word for Windows from OS/2 1.2
Vložit
- čas přidán 29. 07. 2024
- Twitter: / fossfirefighter
Discord: / discord
---
In this episode of studying ancient code bases, our valliant host tortures himself through trying to compile Word for Windows 1.1a. Originally released in 1989, Word for Windows would eventually take over as the domiant word processing solution from the late 90s to today.
In 2014, Microsoft donated the source code of Word for Windows 1.1a to the Computer History Museum (computerhistory.org/) who has made it available on their website. While a few people have compiled Winword from source, no one that I could find has tried to build it using the OS/2 version of the tools. For various reasons, trying to build it under DOS is an exercise of frustration, and I strongly suspect Microsoft developed on top of OS/2 extensively for multiple reasons.
Through the course of this journey, I learned quite a bit of just how Microsoft made their software, some unusual and previously undocumented finds, and deeper mysteries. For example, did you know that Word for Windows isn't compiled to native machine language? Instead it's compiled to P-Code.
This is the second entry on preserving and compiling retro-codebases, and documenting the things I find as go along.
Music is licensed from Epidemic Sound: www.epidemicsound.com/. Tracks listed in the order of appearance:
- Work Undone
- Covert Affairs
- A Travellers' Gloom
- Out of Service
- Apparent Solution
- First on the Scene
- Cryptic Secrecy
- Deviation In Time
- A Healing Component
- Retrouvailles - Věda a technologie
I love the way that the developers at MicroSoft had to create crude versions of Unix utilities to make their application development less painful. Perhaps the old joke about "those that don't know Unix are doomed to recreate it poorly" are true!
actually, all of them look like direct ports of UNIX utilties. Or in short Microsoft pulled a MinGW/MSYS.
@@NCommander Makes sense. I briefly programmed on VMS back in the late 1990s, and there was a lot ports of BSD Unix or GNU tools installed on the systems that I worked on. The core things like compilers, debuggers and profilers were very good and available from Digital themselves but like with the DOS world it seemed that a lot of the other tools built on what had gone before in the Unix world.
@@chriswareham Well, a lot comes from the source, and a lot in a Bubble
IBM stuff seems to be built around Intel's devkit tools (there is a lot of "soft" similiarity). DIGITAL wrote most of their own compilers, but I think used cfront for C/C++ which made it behaviorly very similar to UNIX, and VMS was POSIX compatible, you could even use sh as an interactive shell if you like.
Borland had their own implementations of Pascal, Basic and C, and they're still technically around.
Watcom's big grace is they supported everyone in one single compiler package.
Micorsoft had a long history of development tools going back to the 8-bit era and the ATLAR, and could be seen as the core of early MSFT.
+Chris Well, interesting point.. re the developers having e.g. some port of egrep according to this guy's findings
I remember reading a post by someone at Microsoft (may have been Raymond Chen, may not have been) that Microsoft developers were using XENIX for at least some of their MS-DOS development in the early days, and, by the time MS-DOS 2.0 came out and added support for subdirectories, they were already regretting harmonizing with the utilities IBM provided for PC-DOS that used / as their option flag because it meant that they couldn't use it as the path separator.
17:13 Was there ever / will there ever be a sequel to this episode?? The cliffhanger got me on the edge of my seat!
Same here...
The OS/2 DOS box was also dubbed the 'penalty box' since it could only run one, full screen DOS instance at a time. Thankfully by OS/2 2.0 this was vastly improved.
What's so depressing is Microsoft had versions of OS/2 1.0 that could multitask DOS applications on a 386, and Windows/286 also showed it could be done even on a 80286. Google OS/2 Football/Sizzle. They're on my topic list at some point.
Just stumbled on this through CZcams recommendations, hell yeah do I want to see more! This is so well done and is chock full of interesting info - I had no idea that Microsoft actually had a JIT inside early versions of Word, that's awesome. Been a long time since I've so eagerly subbed to a tech channel! :)
It's more pure interpenetration as far as I can tell (that part of the code is shipped in object form) so Word actually runs slower on the whole because of it. While JITs were probably known at the time, I don't think they were proved practical until Java did it.
But.... why?? Was this just Microsoft hedging their bets, and going way beyond the call of duty to ensure portability between the various OSes that could become dominant at the time? Given that _just Microsoft_ was dabbling with DOS, Xenix, Windows, and OS/2 at the time, and there were Macintosh ports as well.
It seems hard to fathom, in those early days, that the layer of abstraction wouldn't have caused a fair share of heartache. RAM, CPU, and storage space were all at a premium.
@@NCommander Yep, this actually finally explains why Word really felt so distinctively bloated and slow even in those golden times of efficient coding and almost nonexistent software bloat. Still, way less bloated though than modern unusably bloated Word, both absolutically and relatively to contemporary hardware.
You are truly the Indiana Jones of Jurassic software compiling, awesome video!
Thank you kindly. I do plan to do more of these videos, but I'm a little hesistant because their licenses aren't exactly what I call fun. Still, I'm deeply eyeing the Adobe Photoshop, or maybe some stuff on the Rogue Archive webpage.
My favorite document editor from 1989 was "Framemaker", with which I created and edited tons of software documentation for medical device development. It had a built-in version of "Maple", a mathematical environment akin to Wolfram Alpha, used for equation editing and expression "simplification" (i.e. solving). In addition, it did an excellent job supporting structured documents (i.e. paragraphs tagged with styles, just like Word, but better implemented than any Word version I've seen then or since. Framemaker, alas, is long gone.
No it isn’t, Adobe still sells FrameMaker to this day.
CZcams needs more videos in 16 color. Whenever I'm doing a new GNU/Linux (usually a Debian) install, I always go for the old school text installer because it is so fun to interact with.
Huh. That was unexpectedly fascinating! Looking forward to the sequels.
did he ever make them?
@@lowmax4431Nope...
You have quickly become one of my favorite channels on CZcams. I work as a software engineer and you don't understand how much joy it brings me to stop compiling shit, stop the painful dev workflows, call it a day, and go watch someone else do it on CZcams 😂
I remember a third-party app called Word For Word. I think it was some kind of document-translation addon for Microsoft Word. This was in the DOS days. Then when Microsoft brought out Word For Windows, naturally there was a new version of the addon, called ... wait for it ... Word For Word For Word For Windows! #IKidYouNot
Microsoft's marketing department has had some bad spots. They're currently figuring how many X's they can put in Xbox One X
@@NCommander at least one more
@@NCommander Waiting for the limited edition Xbox Series X Triple-X Edition.
Everybody knows X is the coolest letter in the alphabet, by far. Suck it, Z. Like my dad used to say, the more Xes the better.
This was really fascinating to watch and you did a great job filling in the gaps for those like me that are no very familiar with OS/2. Subscribed immediately and looking forward to your other videos!
dawz is immensely cursed
I used to mess around with Win 3.1 when I was very young, I am stunned at how similar it is in look and feel to OS/2!
But a pain for developers using both. Similar system calls but with parameters swapped/reversed.
I think I’ve found one of my new favorite channels on CZcams. Thank you so much for this content!
Thank you very much!
Fascinating stuff, Waiting for part two.
I love OS/2 and all of it's blandness. Even the later Warp versions give off that Steve Buscemi "Hey, fellow kids" vibe.
Awesome stuff, can't wait for the second part. Thanks!
I'm glad youtube recommended me this channel.
Also it almost feels weird seing someone use the Cinnamon DE in a video, for some reason it doesn't seem to be very popular compared to Gnome or KDE.
Usability is overrated in 2021 it seems :(. Cinnamon manages to basically do what a DE needs to do, and then stay out of the way without being super fancy.
What a great video! I really love your channel. Been watching it a ton lately.
MS Dawz?
Yeah what's with that? Is it a common pronounciation? I'm not an English native so I shouldn't complain to hard...
@@donaldklopper I'm a native English speaker and have never heard it pronounced with a voiced 's'.
@@donaldklopper it’s definitely, DEFINITELY not the correct pronunciation in English! “Doss”, not “dawz!”
You can thank the FreeDOS project for preserving the GNUish files...which is basically how I knew about it to point it out as a possible solution. XD
Are you ever going to publish the follow-up to this talking more about what's going on?
'Knee - sh' niche ;)
Lots of people pronounce it "nitch"; as noted in the OED www.oxfordlearnersdictionaries.com/us/definition/american_english/niche
Aye! And kludge rhymes with stooge, not fudge!
Fascinating story, and I would love to see a follow-up to this one. Any hopeful chance that we might see a part 2? Thanks for the great retro history work! 🙂
The answer is "eventually", but TBH, this project had a lot of behind the scenes problems (this video took nearly a month to put together) that I don't want to go into, and I've kinda shelved it for the time being.
cant stop watching your videos! Fascinating stuff - Retro OS stuff and coding, lovely combination.
Terrific work! 👍
Did the follow up video ever get released? If so I couldn't find it. I would very much like to have those questions answered. Awesome video.
It didn't; I sorta keep getting sidetracked.
@@NCommander we will forever more be tortured by the question of if Word for Windows 1.1 will run under Windows 10.
Will it build? That is the question.
*Saxophones start playing.*
Hi, thanks you an amazing video! Have you released that next video about Word lineage? I couldn't find one
This is great history love the video. The only thing that irritated me is the way you say DOS as DOZ but other than that great video.
Glad it’s not just me who found it irritating!
Now this brings back memories. My first PC was an IBM PS/2 sx56 386sx running OS/2 2.0, I bought it from my pocket money at a garage sale and it just so happened to come with that (it was ancient at that time I got it already). I've found a set of floppies through friends (and parents of friends) that contained a native OS/2 set of Word 5 and Excel 4 I think. I actually still have that old 386 and it's in working order too, I boot it up from time to time just for fun.
Great video. Waiting for the second part. I'd like to know more about what you found in the source code.
Epic! Top stuff!
Very nice, I'm looking forward to the followup video :)
Follow-up has been in ... an ugly situation. I'll get there eventually but it will take awhile ...
@@NCommander That tends to happen with old systems... Good luck!
I noticed the opus build said preview build in its splash screen.
also; where did part 2 wander off to?
As someone who often has to build old C projects I really enjoyed this journey... was on the edge of my seat with every little setback :) I like how you go through failed attempts; makes people like me feel a bit less stupid when I keep running into roadblocks with each step of something I'm trying to figure out.
Would love to see some snippets of anything you find interesting just to see what the general style was back then. And I'm guessing Windows 10 is able to run this, assuming you're using a 32 bit version. Microsoft loves them some backward compatibility.
It actually fails miserably on Windows 10, and almost all later versions of XP. The reasons are rather complex, but I haven't gotten back to this just yet.
@@NCommander Dang, well I definitely haven't tried something this old. Looking forward to the next episode 👍
I'm always shocked when something _does_ compile, and stunned when it also _runs!_
As a Gentoo user, I live on hopes and dreams.
Short answer about running on Windows 10 : Should if is Windows 10 32 bit version
There is a video where a guy does Windows upgrades from Windows 1.0 to Windows 10 32 bit and can keep running original Windows 1.0 applications on every version of Windows.
However, the 64 bit version of Windows, dropped all support to run 16 bit applications.
It doesn't, for very specific and complex reasons. I just haven't gotten around to making the follow-up to this one.
Well, pronouncing it 'Dawes' is still better than Loretta Swit calling it 'Dose.'
Any pronunciation other than “doss” is just annoying! This “dawz” nonsense is surprisingly distracting!
I don't want to take away from your pain... But surely there are more pressing things to be concerned with 🤷♂️
@@typhoonf6 No! It’s the pressing issue of the century!
@@typhoonf6 Surely. Such as correcting people's assumed priorities in internet comments?
@@kelli217 you announce a preference for correct pronunciation, I question priority of that issue, you question the priority of my question... It's a vacuous cycle
As the old joke went "OS/2 for PS/2: half an operating system for half a computer" lol
This is the first time I've heard someone pronounce DOS with a voiced 's' instead of a voiceless 's'.
To be honest, the voiced S is how I always remember hearing and pronouncing it. I get so many comments complaing I use a Z sound but it doesn't sound right to me.
@@NCommander Considering that DOS is an acronym for Disk Operating System, the S should be provided 's' rather than 'z'.
@@CordSchneider initialisms don't inherently take on the pronunciation of their origin words. You don't say "skuh-buh" for SCUBA or "lahhseer" for laser, right?
... or “deb-ian” instead of “dee-bian”?
It's like how I discovered the Brits called the SNES the "snezz". Makes it sound like some sort of nasal accessory.
Why do you say DOS like that? From someone who was there and involved in its origins, you’re saying it wrong.
I'm new to the channel and I've been binging your videos (found you via the pinball video, as an MJD subscriber I had to watch :D) However, I can't find the second part of this video (you mention in the end) on your channel. Did you ever manage to get it out? I'd love to see it!
Michael MJD actually gave me a shoutout recently in his Compaq portable video.
During my college years, I was as an co-op at IBM (alternating semesters, doing VAR support for AIX for RS6000 machines) when OS/2 Warp went gold. I'd wanted to play with OS/2 but never before had the chance. After downloading a stack of floppies, I finally found a spare PS/2 machine that was capable of running it. I got it installed. Played with it for about 30 minutes. I think I tried a few pieces of software with (at best) mixed success. It seemed neat, but I don't think I ever did anything else with it.
Where's the part two for this?
I wonder if it is possible to build word on modern linux distros
the feeling when you finally get something to compile without errors is orgasmic.
Damn, I really miss actually useful error messages. Heck. it even suggests what you should do to fix it (11:27). It's not a like "Uh-oh, something went wrong" or a BSoD with emoji
New(?) Intro is great!
I had an intro on the previous video, but I realized it was a bit too similar to Novell's corporate logo so I changed it. I might end up doing Simpsons like couch gags though :)
At the time I think I was using Word for Macintosh 3.1. Despite all the features that version missed, I have extremely pleasant memories for the interface. I just upgrade Word 2013 for the PC to 2021 and I'm just happy there were no major changes I could see.
I just want to know what DOZ is. Disk Operating Zystem?
I've come back to see if there was an answer, and nothing. Boo NCommander!
ITS REALLY WORKED LOL THANK YOU DUDE
Wondering about the old age of Win 3.1, OS/2, old GEOS and overcourse DOS ! OS/2 3.0 had the plus pack, have a system with OS/2 3.x never used it much until now. Hardware a great issue, exchange data, searched for upgrade to 4.x and maybe a zip or network exchange. Like those stories about old age, why an how everything evolved since. Obviously the memory issue than was the biggest hurdle to take when programming anything, well done !
DOS/Win16 is sorta a special case because both those environments were badly affected by limitations imposed by the 8086 and 286 processors (specifically segmentation). 386 and later doesn't have that and has in practice not changed much since say 1995 to present day.
For environments that didn't have such crazy limitations such as UNIX, in many ways, it's essentially unchanged from the 1970s to modern day.
D O Z Z
11:42 wow, it did had an use. the infamous ring 2 !
So the answers of the question at the end remain unanswered? I couldn't easily find a part 2 of compiling word.
Did the follow-up video to this ever come out? I can't find it...
Life sorta happened. I might still do it, but its on the backburner.
@@NCommander No worries! I was just wondering if I missed it!
Not about OS/2 but I was playing with 86Box last night, and found that when installing Windows 95, you can opt to load up the old style 3.11 File Manager instead of the Windows 95 desktop..
Just to let you. I was one of the first working with os/2 since 1.0. 1.2 had an official version of word and excel for OS/2 as well as page maker. On thing you had to know there was a Rex application with iOS/2. Banks used the OS/2 because of stability. .
13:42 - one of the people listed in the copyrights is actually my university teacher :D
Somehow I didn't find the video where you run this (or not run this) on Windows 10. Can you maybe share a link here?
I never made a follow up for life reasons, but its still on the topics list. Hopefully soon.
@@NCommander Hope to see it soon 👍
"Can you compile and run winword in OS/2?"..."Well, technically yes if you install windows on top."
Hey, you still planning part 2? Talk about cliffhanger!
5:00 Presentation Manager is this way because of the infighting between IBM divisions and Microsoft.
(Before anyone comments, I'm not a know all person and my sourse is a video by the youtube channel "Another Boring Topic", so please don't act like I'm a person who just argues and doesn't understand opinions or sarcasm/jokes as I'm not).
It would be great to get follow-up on this video. Doesn't have to be perfect - just want to hear those insights you got.
I think I had a mini-stroke every time you pronounced DOS as DOZ.
I think one of the other technical/marketing problems with OS/2 was what incentive was there to create a native OS/2 application? With OS/2 having a Windows personality, you could run Windows 3.x programs flawlessly.
So if you were a developer, why limit your market to only OS/2 users (or develop two versions) of your application when a 3.x release would work on both. Without any "killer apps" you couldn't get on Windows, why would you use OS/2?
Every company should do like Microsoft did and release the source code after 20 years, for archival, before its completely lost. We lost so many pieces of historical software already, its kind of sad.
20 years. That would mean XP is due for open-sourcing. wwhhheew... that did not feel good to contemplate.
@@nickwallette6201 XP reminds me of my teenager years.
There are people born after 2000s
Eew
They were babies when XP was launched
We are just old bro.
Was part 2 never released? :(
Real life issues came.
Wasn't OS/2 Warp the graphical version of OS/2?
I thought OS/2 was text be based (like DOS).
OS/2 1.0 was text based, but subsequent versions had a GUI. OS/2 2.1 introduced the WorkPlace Shell GUI, which was what was used in WARP 3 and WARP 4.
Can it be compiled for linux too?
Wait so the license even prevents from releasing a patch?
No, since due to the custom C compiler it doesn't really match WINE's API, and the license prevents you from doing any real work with it.
So, P-code (pseudo-code) is EL meta data structures like nowadays lambda JIT code to compile inline to actual code or just a data structure for IntelliSense or class inheritance. Note, OS/2 REXX script language with VROjects add-on is still way better than nowadays Powershell. Why in programming to OS/2 you need anchor (application/process instance) and window handle , but in Windows only a window handle? Is it for console extension to GUI paradigm? More, in Windows your 0,0 location is top and left versus OS/2 bottom and left to enforce XGA graphics card usage versus VGA clones. Windows and OS/2 have opposite z-directions to make porting tedious using view port and world mapping efficiently if try to be dual software rendering compliant.
In my relatively limited experience, grep, fgrep, and egrep often all use the same binaries and sets the switches based on which one you ran. Or egrep and fgrep are scripts that call grep with specific switches. You MIGHT have had everything you needed, already if either of these two cases were true. Or you could have edited the script to have grep called instead but add the -E flag for egrep.
Tried it, didn't work. These look like they were right out of AT&T UNIX, so probably was still all seperate binaries.
You made a list of why OS/2 failed. It was much much simpler than that. Development tools were net readily available… meaning you couldn’t just pirate them from a BBS. So, no one developed for it.
I get the feeling developing Windows applications on OS/2 is basically the PC equivalent of developing Macintosh applications in Lisa Workshop.
It probably was, but it was quite awhile before there was enough get up and go on an actual Macintosh to do development. I won't be surprised if Apple kept using Workshop until the Macintosh Plus or even later because early Macs were really anemic.
@@NCommander But the Lisa’s 68000 CPU ran several MHz slower than the one in the Mac. Equipped with the same amount of RAM and a hard disk, the Mac was almost certainly a much faster build environment than the Lisa.
@@tookitogo Did the Lisa use the same memory for video, though?
@@nickwallette6201 Yes. I’ve never, ever seen mention of the Lisa having separate video memory.
4:22 oof it kinda hurts to see how you set the memory to 8196kB instead of 8192kB
then again the sytsem shouldn't care
So I have a clear recallection reading about the maligned word 6 for macos, and how it was supposed to have been written in some kinda script language from the windows version. But it's much better explained by the bytecode runtime
I actually made a slight factual error (it's noted in the writeup); Word itself is compiled to bytecode, but EL is actually the runtime for the macro language. I meant to address this in part 2 of Word, but TBH, that video has had difficulty in the scriptwriting stages so its deferred until I can manage to tackle it.
Dozz
man i really want to use pcem on linux. but i don't find anywhere, just the source code.
I had to compile it from scratch.
Genuinely curious, would these old licenses really still hold up today?
Why wouldn't it? By law, copyrights are valid until Nobody Cares Anymore, or World Peace, whichever comes first.
What's the name of the old PC Emulator?
PCem
For what it's worth, the 32 and 64 bit PE (Portable Executable) executables in modern Windows still have the MS-DOS stub in the first hundred bytes, which will print "This program cannot be run in DOS mode", if started under DOS. You can link a PE file using any DOS program as a stub.
Indeed correct; the MZ binary at the start infact part of the PE specification. Even grubx64.efi on my system has "This program can't be started in DOS mode".
@@NCommander I wonder if EFI executables also have this on Itanium. I'll have to check it tomorrow.
@@dr.shuppet5452 Well?
4:24 it must have been those additional 4 kilobytes of memory :-P (!~8192)
I have heard Microsoft also used their own homegrown Unix (xenix?) system on a PDP-11 (called Miss Piggy), and was used by the dos development team 🤔
There was no pt2 :(
It's only my list of topics, but I'm been somewhat uninspired to get into it.
These questions have a very distinct answer: 1. why compile Word for ... [what] ... ? 2. why should I use OS/2? The answer is: *Because I can!* _(And it is also a moral obligation to geekhood)_
Cool channel name.
OS/2 3.0 was pretty nifty. I didn't run it much though.
I suspect word 2.0 has 90% of what people use in word today.
I was thinking that, too. The simple toolbar looks refreshingly productive after the "where the crap is this feature I have to use every three months??" that is ... The Ribbon.
05:06 - This is the Way
Very interesting that they would use OS/2, but looking at the abilities of DOS and pre-386 Windows at the time it makes sense. I wonder how long it took for internal Microsoft projects like this on to move to a development environment hosted on Windows (>=3.1) with something like Visual C++. Also, the bytecode thing? Wow.
From what I can tell, a lot of MS development was initially done on mainframes, then on-top of Xenix, OS/2, and then primarily Windows NT, although some development was indeed done ontop of DOS/Win 3.1/Chicago/95.
@@NCommander You can ask what it was the development toolchain to David Plummer a MS developer from the DOS era.
He has a channel now
czcams.com/channels/NzszbnvQeFzObW0ghk0Ckw.html
Is it DOZ or DOS? :P
Es 2
I wish Microsoft didn't force everyone to use Microsoft 365 subscription-only crapware nowadays. I think it's so greedy of them to only sell their suite as a subscription only product now. I didn't mind paying every several years for a permanent version.
365 is subscription. They've always offered a non subscription version: 2010, 2013, 2016, and 2019. Currently, 365=2019. Home and business 2019 is $249, or just over 3x years of subscription 365 (but you lose Publisher and Access; Pro is $399 and has those, but it's nearly 6 years of subscription in price.)
He might be thinking of Adobe which indeed does the subscription only model. Microsoft just prices Office so high that you'd have to a small fortune but considering there hasn't been any real "major" features in Office from 97 -> onward, well ...
@@cokeacolasucks I'm still using Office 2013 but I've switched to LibreOffice recently since it does almost everything I want an Excel and Word to do.
The only thing I'd say the Microsoft products do better is having much nicer templates available to download.
For ms documents I have found OnlyOffice useful :)
5:00 there actually was!
It took a lot of temptation not to clip in the Futurama scene "We kept it gray".
The nightmares of config.sys
And I'd like a Word lineage video.
Is there any relation to WordPad or Write?
There's an unusually complex relation to Write. I'll get the follow-up here made ... eventually ...
@@NCommander thx
New intro animation!!!
Did Google also pledge not to monetize this video
Unfortunately, after I posted this, Google decided to put ads on even non-monentized content.
@@NCommander maybe Microsoft will sue Google for breaking their T&Cs
You are a cool guy. Wish you had more videos!
Did you just say Xenix was by Microsoft? I've heard the name Xenix before but know nothing about it. Perhaps you could make a video about Xenix at some point?
I like how he pronounces DOS: _"daws"_
sounds cooler that way
Wow. OS/2 looks geat. Far better than Win 3.1
And It quite good by today standards.