Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Features  





2 Name  





3 See also  





4 References  





5 External links  














GW-BASIC






Català
Deutsch
Español
فارسی
Français

Bahasa Indonesia
Italiano

Bahasa Melayu
Nederlands
Polski
Português
Русский
Suomi
Svenska
ி
Türkçe
Tiếng Vit

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


GW-BASIC
DeveloperMicrosoft
First appeared1983; 41 years ago (1983)
Stable release

3.23 / 1988; 36 years ago (1988)

OSDOS
LicenseProprietary
MIT License (v1.0)[1]
Influenced by
IBM Cassette BASIC, IBM Disk BASIC, IBM BASICA
Influenced
QBasic, QuickBasic, MSX BASIC

GW-BASIC is a dialect of the BASIC programming language developed by Microsoft from IBM BASICA. Functionally identical to BASICA, its BASIC interpreter is a fully self-contained executable and does not need the Cassette BASIC ROM found in the original IBM PC. It was bundled with MS-DOS operating systemsonIBM PC compatibles by Microsoft.

The language is suitable for simple games, business programs and the like. Since it was included with most versions of MS-DOS, it was also a low-cost way for many aspiring programmers to learn the fundamentals of computer programming.[2][3] Microsoft also sold a BASIC compiler, BASCOM, compatible with GW-BASIC, for programs needing more speed.

According to Mark Jones Lorenzo, given the scope of the language, "GW-BASIC is arguably the ne plus ultra of Microsoft's family of line-numbered BASICs stretching back to Altair BASIC – and perhaps even of line-numbered BASIC in general."[4]

With the release of MS-DOS 5.0, GW-BASIC's place was taken by QBasic, a slightly abridged version of the interpreter part of the separately available QuickBASIC interpreter and compiler package.[5]

On May 21, 2020, Microsoft released the 8088 assembler source code for GW-BASIC 1.0 on GitHub under the MIT License.[1]

Features[edit]

IBM BASICA and GW-BASIC are largely ports of MBASIC version 5.x, but with added features specifically for the IBM PC hardware. Common features of BASIC-80 5.x and BASICA/GW-BASIC include:

The ability to "crunch" program lines by omitting spaces, a common feature of earlier Microsoft BASIC implementations, was removed from BASIC-80 5.x and BASICA/GWBASIC.

BASIC-80 programs not using PEEK/POKE statements run under GW-BASIC. BASICA adds many features for the IBM PC such as sound, graphics, and memory commands. Features not present in BASIC-80 include the ability to execute the RND function with no parameters and the ability to also save programs in a "protected" format, preventing them from being LISTed. BASICA also allows double-precision numbers to be used with mathematical and trigonometric functions such as COS, SIN, and ATN, which wasn't allowed in 8-bit versions of BASIC. This feature was normally not enabled and required the optional parameter /D at startup, i.e., GWBASIC /D. BASIC's memory footprint was slightly increased if it was used.

Microsoft did not offer a generic version of MS-DOS until v3.20 in 1986; before then, all variants of the operating system were OEM versions. Depending on the OEM, BASIC was distributed as either BASICA.EXE or GWBASIC.EXE. The former should not be confused with IBM BASICA, which always came as a COM file. Some variants of BASIC has extra features to support a particular machine. For example, the AT&T and Tandy versions of DOS include a special GW-BASIC that supports their enhanced sound and graphics capabilities.

The initial version of GW-BASIC is the one included with Compaq DOS 1.13, released with the Compaq Portable in 1983, and was analogous to IBM BASICA 1.10. It uses the CP/M-derived file control blocks for disk access and does not support subdirectories. Later versions support subdirectories, improved graphics, and other capabilities.

GW-BASIC 3.20 (1986) adds EGA graphics support (no version of BASICA or GW-BASIC had VGA support) and is the last major new version released before it was superseded by QBasic.

Buyers of Hercules Graphics Cards received a special version of GW-BASIC on the card's utility disk that is called HBASIC, which adds support for its 720×348 monochrome graphics. Other versions of BASICA/GW-BASIC do not support Hercules graphics and can only display graphics on that card through the use of third-party CGA emulation, such as SIMCGA.

GW-BASIC has a command-line-based integrated development environment (IDE) based on Dartmouth BASIC. Using the cursor movement keys, any line displayed on the screen can be edited. It also includes function key shortcuts at the bottom of the screen. Like other early microcomputer versions of BASIC, GW-BASIC lacks many of the structures needed for structured programming, such as local variables. GW-BASIC programs executed relatively slowly because it was an interpreted language. All program lines must be numbered; all non-numbered lines are considered to be commands in direct mode to be executed immediately. Program source files are normally saved in binary compressed format with tokens replacing keywords, with an option to save in ASCII text form.[6]

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)=<mathematical function of 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 (32-bit MBF).[7]

GW-BASIC allows use of joystick and light pen input devices. GW-BASIC can read from and write to files and COM ports; it can also do event trapping for ports. Since the cassette tape port interface of the original IBM PC was never implemented on compatibles, cassette operations are not supported. GW-BASIC can play simple music using the PLAY statement, needing a string of notes represented in a music macro language, e.g., PLAY "edcdeeL2edfedL4c". More low-level control is possible with the SOUND statement, which takes the arguments of a frequencyinhertz 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. GW-BASIC for the Tandy 1000 allows up to three channels of sound for the SOUND and PLAY commands.[7]

Name[edit]

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 that Bill Gates picked the name GW-BASIC. Whitten refers to it as Gee-Whiz BASIC and is unsure whether Gates named the program after him.[8] The Microsoft User Manual from Microsoft Press also refers to it by the Gee-Whiz BASIC name.[citation needed] It may have also been nicknamed Gee-Whiz because of its numerous graphics commands.[8] 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).[9][10]

See also[edit]

References[edit]

  1. ^ a b Turner, Rich. "Microsoft Open-Sources GW-BASIC". Windows Command Line. Microsoft. Retrieved May 22, 2020.
  • ^ KindlyRat. "GW-BASIC". Archived from the original on 2005-07-26. Retrieved 2009-11-10.
  • ^ Leon. "GWBASIC Games & Other Programs". Archived from the original on 2009-10-26. Retrieved 2009-11-10.
  • ^ Lorenzo, Mark (2017). Endless Loop: The History of the BASIC Programming Language. Philadelphia: SE Books. p. 122. ISBN 978-1974-27707-0.
  • ^ "Microsoft BASIC version information". Retrieved 2008-06-12.
  • ^ "GW-BASIC Documentation and Utilities". Archived from the original on 2007-12-17.
  • ^ a b "GW-BASIC User's Guide". 1987. Retrieved 2008-06-28.
  • ^ a b Gregory Whitten (2005-04-13). "GW-BASIC". Archived from the original on 2008-09-20. Retrieved 2008-06-29.
  • ^ "Linux Dictionary:G". Retrieved 2008-06-28.
  • ^ "GW-BASIC". 2005-04-13. Archived from the original on 2008-06-29. Retrieved 2008-06-28.
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=GW-BASIC&oldid=1221599809"

    Categories: 
    Discontinued Microsoft BASICs
    Programming languages created in 1983
    BASIC interpreters
    BASIC programming language family
    Software using the MIT license
    Assembly language software
    Formerly proprietary software
    Microsoft free software
    Microsoft programming languages
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    All articles with unsourced statements
    Articles with unsourced statements from June 2008
    Webarchive template wayback links
    Articles with J9U identifiers
    Articles with LCCN identifiers
     



    This page was last edited on 30 April 2024, at 21:32 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki