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 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.
For Microsoft.
Working on Basic.
I like stories like this… takes me back to Commodore 64 And Basic….. lots of memories!!! Thanks for remembering for me!!
And forward today where Cobol programmers are semi-rare and sought after. Basic? Not so much.
I learned Basic via Integer Basic on my Apple ][ (Rev 0, this was very early @1978). A little later I started coding in Rexx at my IBM job. Wonderful language; shame it hadn’t been a bit earlier and used instead of Basic.
The Commodore-64’s version of BASIC v2.0 was originally written by Microsoft (!) and purchased outright by Commodore Business Machines. (MS really regretted that particular sale!)
When the C128 came out later on, its native mode used Microsoft BASIC, too — BASIC v7.0 — but this time MS licensed it rather than selling it. When you boot the C128 in its native mode, the startup screen has a Microsoft copyright notice. 🙂