Back in the days BM (Before Microsoft), I worked for a small company in Seattle called International Entry Systems, Inc, or IESI. They manufactured Z-80 (8-bit) based data entry terminals consisting of a single line display, a keyboard, and a cassette data recorder (hence the product name: “DataCorder”). All software was loaded from tape. (This was 1980, after all.)
One of the software packages they had available was a copy of Microsoft Basic. I won’t go into the machinations needed to have a working Basic interpreter using a single 40 character line display and a single cassette deck for all storage, but they did.
It was in place, though underutilized, when I showed up.
Over time it became my task to extend it with some device-specific additions to the Basic programming language. We had the source code of course, so I dove headlong into understanding how 8-bit Microsoft Basic worked. My primary addition was access to the communications ports on the data entry terminal. Customers writing in Basic could then write simple terminal emulation programs and other nifty things.
What I came to eventually find out was that IESI had not acquired Microsoft Basic by normal (meaning legal) means.
In fact, one of my predecessors had reverse-engineered it. They had taken a copy of Microsoft Basic on some other 8-bit machine, and reconstructed source code, and then modified it for IESI’s needs.
I was assured that all the legalities had been addressed, and the licensing approved before I arrived. Whew!
Fast forward two or three years: I’m interviewing at Microsoft. A respectable knowledge of the workings of their own product was perhaps a small part of my getting hired. I was offered three possible positions. The conversation — heavily paraphrased — went something like this:
We’ve got this position working on Basic, this other position working on Basic, and this position working on Microsoft COBOL.
Cool! I’d like that position working on Basic, please.
Well, we’d kinda sorta like to get you over on COBOL if you don’t mind.
Well, how about that other position working on Basic?
Yes. Well. Ahem. You see, we’d really like to have you join our COBOL team.
OK, then. Who am I to argue? COBOL it is!
COBOL was the right fit. I had a great time there, and made some great friends. (And learned COBOL!)
But the story’s not over. You see, that guy who illegally reverse-engineered Microsoft Basic for IESI? He left just shortly before I arrived. He found himself a new job.
Working on Basic.