
GW-Basic Source Notes - kencausey
https://www.os2museum.com/wp/gw-basic-source-notes/
======
smitty1e
"There are several theories on what the initials "GW" stand for. Greg Whitten,
an early Microsoft employee who developed the standards in the company's BASIC
compiler line, says Bill Gates picked the name GW-BASIC. Whitten refers to it
as Gee-Whiz BASIC and is unsure if Gates named the program after him. The
Microsoft User Manual from Microsoft Press also refers to it by this name. It
may have also been nicknamed Gee-Whiz because of its numerous graphics
commands. Other common theories as to the initials' origins include "Graphics
and Windows", "Gates, William" (Microsoft's president at the time), or "Gates-
Whitten" (the two main designers of the program)."
[https://en.m.wikipedia.org/wiki/GW-BASIC](https://en.m.wikipedia.org/wiki/GW-
BASIC)

~~~
teddyh
I have no basis for this theory, but I have a hunch that Bill Gates named it
“GW-BASIC” after the initials of Greg Whitten, not to give Greg credit, but as
a form of _disclaimer_. Remember, the Basic interpreter was Gates’ own baby
(it was Micro-Soft’s original product, written by Gates personally), and Gates
may have planned to make a, in his mind, _real_ version of Microsoft Basic
later. Therefore, Gates might not have wanted this new Basic, which he might
have viewed as an interim version, to be the definitive branded version.

Of course, this is all speculation.

~~~
Koshkin
Too bad he probably stopped reading Hacker News some time back in late 80s,
otherwise he could chime in on this.

------
acqq
As mentioned in the comments there, there's also now:

[https://github.com/tkchia/GW-BASIC](https://github.com/tkchia/GW-BASIC)

"All files can now be assembled with Microsoft MASM 5.1A."

"The interpreter is semi-working, but some parts of the platform-specific
support code are still missing or incomplete."

------
discreteevent
I got a contract where, as part of it, I had to figure out and modify some
programs written in qbasic (a successor to gw-basic). A great little
environment. It had everything, a fully integrated debugger, subroutines. You
could get a lot done with it, including DOS graphics.

~~~
folkhack
QBASIC 4.5 is responsible for my entire career in software engineering. As an
8yr old kid I was fully able to grok the documentation included in that
environment building games that emulated what I would play on my NES. Mostly
it was just dumb Dragon Warrior-esque RPGs with HORRIBLE dialogue, first text-
only then with full-blown graphics. In the early days of the internet there
were _tons_ of communities and forums and some of my first websites I
published were dumb game websites where I'd publish my .BAS =)

Before that I would tinker with Applesoft BASIC on a IIe my father brought
home from Rockwell Collins... BASIC was/is such an approachable dialect for
kids.

After a few years tinkering I graduated to Pascal and C/C++ after an uncle
unloaded all of his old Borland books on me. If it wasn't for BASIC teaching
me programming fundamentals (variables, conditions, loops, "functions", etc) I
don't think I would have been able to grok formal/more-powerful languages. At
first I didn't have any resources/mentors/Google for programming so I really
needed BASIC.

BASIC will always hold a special place in my heart!

~~~
endgame
You might enjoy [https://www.qb64.org/](https://www.qb64.org/) , particularly
if you have a bright youngster in you live with whom you'd like to share the
joy of BASIC.

------
Tempest1981
Related:
[https://news.ycombinator.com/item?id=23266917](https://news.ycombinator.com/item?id=23266917)

------
basicplus2
on duckduckgo..

<Forbidden You don't have permission to access this resource.

Apache/2.4.29 (Ubuntu) Server at www.os2museum.com Port 80>

..But works in Firefox

~~~
quietbritishjim
I don't understand, why do you need a search engine at all to access the link?

~~~
basicplus2
its the Duckduckgo android browser

~~~
Koshkin
you can submit a bug or you could just use another browser to open the link

~~~
basicplus2
I thought other readers on HN would be interested to know about it as its
seems a very strange result to me.

------
nn3
He didn't really say all that much about how the code is implemented, what
algorithm it uses or even just what modules it contains. I guess reading all
that assembler is just too tiresome.

There's a reason nobody writes large programs in assembler anymore (except for
the IRS)

~~~
WorldMaker
The included discussion that the code doesn't use the stack, mostly assumes
the registers are dirty at all times, and doesn't use PROC/RET all highlight
that this source code specifically wasn't designed for readability or reuse.

~~~
nocturnial
Most auto generated code isn't that readable and this should surprise you.
What you're seeing is the result of an asm "translator" with some manual
modifications to make it work on the x86 platform. [1]

That's why you see in the source code the phrase "This translation created
on...". Microsoft, at this time, hasn't made available the tools they used to
generate this code or the original version it was created from.

[1] [https://devblogs.microsoft.com/commandline/microsoft-open-
so...](https://devblogs.microsoft.com/commandline/microsoft-open-sources-gw-
basic/)

~~~
WorldMaker
Though this was also a fork from whatever "intermediate assembly language" the
earlier versions used. GW-BASIC was far enough in "x86 is the only thing we
need to support at Microsoft now" territory that presumably a lot of the GW-
specific additions were done directly to this code instead of at the "next
level up" in whatever that previous translator worked in.

This also seems corroborated in the dev blog you link, though without source
control history, the upstream translation layer, and the original
"intermediate assembly" code, the details at this point are relatively fuzzy.

