GW-BASIC was a dialect of
BASIC developed by
Microsoft from
BASICA, originally for
Compaq. It is compatible with Microsoft/
IBM BASICA, but was disk based and did not require the
ROM BASIC. It was bundled with
MS-DOS operating systems on
IBM PC compatibles by Microsoft. Microsoft also sold a BASIC
compiler, BASCOM, compatible with GW-BASIC, for applications requiring more speed. The language was suitable for simple games, business programs and the like. Since it was included with most versions of MS-DOS, it was also an inexpensive way for many would-be
programmers to learn the fundamentals of
computer programming.
With the release of MS-DOS 5.0, GW-BASIC's place was eventually taken by
QBasic, a cut-down version of the separately available
QuickBASIC compiler
Syntax
The GW-BASIC command-line environment has commands to
RUN,LOAD,SAVE,LIST
the current program, or quit to the operating
SYSTEM
; these commands can also be used as program statements. There is little support for
structured programming in GW-BASIC. All
IF/THEN/ELSE
conditional statements must be written on one line, although
WHILE/WEND
statements may group multiple lines.
Functions can only be defined using the single line
DEF FNf(x)=
statement (e.g., DEF FNLOG(base,number)=LOG(number)/LOG(base)
). The data type of Variables can be specified with a character at the end of the variable name: A$
is a string of characters, A%
is an integer, etc. Groups of variables can also be set to default types based on the initial letter of their name by use of the DEFINT, DEFSTR
, etc., statements. The default type for undeclared variables not identified by such typing statements, is single-precision floating-point.GW-BASIC allowed for the
joysticks,
mice and
light pen input devices of its time. GW-BASIC can read from and write to files and
COM ports; it can also do event trapping for ports. Since the
cassette port interface of the original IBM PC was never implemented on compatibles, cassette operations are not supported. GW-BASIC is able to play simple music using the
PLAY
statement, requiring a string of notes represented in a
music macro language (e.g.
PLAY "edcdeee2dfedc4"
). More
low-level control is possible with the
SOUND
statement, which takes the arguments of a
frequency in
hertz and a length in clock ticks for the standard internal
PC speaker in IBM machines. Consequently sound is limited to single channel beeps and whistles as befits a 'business' machine. Home based PCs such as the
Tandy 1000, allowed up to 3 channels of sound for the
SOUND
and
PLAY
commands.
Name
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.
[citation needed] It may have also been
nicknamed Gee-Whiz because it had a large number of
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)