Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
QuickBASIC
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|IDE for the BASIC programming language}} {{Distinguish|QBasic}} {{Infobox software | name = QuickBASIC | screenshot = QuickBasic Opening Screen.png | caption = Opening screen | released = {{Start date and age|1985}} | developer = [[Microsoft]] | latest release version = 7 | latest release date = {{Start date and age|1990}} | operating_system = [[MS-DOS]], [[Classic Mac OS]] | platform = [[x86]], [[Motorola 68000]] | genre = [[Microsoft BASIC]] | license = [[Proprietary software|Proprietary]] }} '''Microsoft QuickBASIC''' (also '''QB''') is an [[Integrated Development Environment]] (or IDE) and [[compiler]] for the [[BASIC]] [[programming language]] that was developed by [[Microsoft]]. QuickBASIC runs mainly on [[DOS]], though there was also a short-lived version for the [[classic Mac OS]]. It is loosely based on [[GW-BASIC]] but adds user-defined types, improved programming structures, better graphics and disk support and a compiler in addition to the [[BASIC interpreter|interpreter]]. Microsoft marketed QuickBASIC as the introductory level for their BASIC Professional Development System.<ref>Early Microsoft documentation rendered the name exclusively as "QuickBASIC", although later references on Microsoft's Web site also use "QuickBasic".</ref> Microsoft marketed two other similar IDEs for C and Pascal, viz [[QuickC]] and [[QuickPascal]]. ==History== Microsoft released the first version of QuickBASIC on August 18, 1985 on a single 5.25-inch 360 KB [[floppy disk]]. QuickBASIC version 2.0 and later contained an [[Integrated Development Environment]] (IDE), allowing users to edit directly in its on-screen text editor. Although still supported in QuickBASIC, line numbers became optional. Program jumps also worked with named labels. Later versions also added control structures, such as multiline [[conditional (programming)|conditional statements]] and loop blocks. Microsoft's "PC BASIC Compiler" was included for compiling programs into DOS executables. Beginning with version 4.0, the editor included an interpreter that allowed the programmer to run the program without leaving the editor. The interpreter was used to debug a program before creating an executable file. Unfortunately, there were some subtle differences between the interpreter and the compiler, which meant that large programs that ran correctly in the interpreter might fail after compilation, or not compile at all because of differences in the memory management routines.<ref>[https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/45850 Microsoft Knowledge Base 45850: Memory Management in QuickBasic & Basic Compiler]</ref> The last version of QuickBASIC was version 4.5 (1988), although development of the Microsoft BASIC Professional Development System (PDS) continued until its last release of version 7.1 in October 1990.<ref>QuickBASIC 4.5 was delivered on a set of five 360 KB 5.25-inch DSDD floppy disks or three 720 KB 3.5-inch DSDD floppy disks. The three-disk version could also be installed from 1.2 MB 5.25-inch or 1.44 MB 3.5-inch DSHD disks. To save costs, the files were compressed and later versions were shipped on just four 5.25-inch disks or two 3.5-inch disks.</ref> At the same time, the QuickBASIC packaging was silently changed so that the disks used the same compression used for BASIC PDS 7.1.<ref>[http://support.microsoft.com/kb/65291 Microsoft Knowledge Base article 65291]</ref> The Basic PDS 7.x version of the IDE was called QuickBASIC Extended (QBX), and it only ran on DOS, unlike the rest of Basic PDS 7.x, which also ran on OS/2. QuickBASIC 4.5 was the subject of numerous books, articles, and programming tutorials, and arrived near the high-point of BASIC saturation in the PC marketplace. In 1989, Microsoft Press bundled the QuickBASIC Interpreter into a book-and-software learning system called ''[[Learn BASIC Now]]''. The product was priced at $39.95 and included a Foreword written by Bill Gates, who reported that BASIC was in active use by over four million PC users.<ref>{{cite book |last1=Gates |first1=Bill |last2=Halvorson |first2=Michael |last3=Rygmyr |first3=David |title=Learn BASIC Now |date=1989 |publisher=Microsoft Press |location=Redmond, WA |page=ix}}</ref> The successor to QuickBASIC and Basic PDS was [[Visual Basic (classic)|Visual Basic]] version 1.0 for MS-DOS, shipped in Standard and Professional versions. Later versions of Visual Basic did not include DOS versions, as Microsoft concentrated on Windows applications. A subset of QuickBASIC 4.5, named [[QBasic]], was included with [[MS-DOS]] 5 and later versions, replacing the [[GW-BASIC]] included with previous versions of MS-DOS. Compared to QuickBASIC, QBasic is limited to an interpreter only, lacks a few functions, can only handle programs of a limited size, and lacks support for separate program modules. Since it lacks a compiler, it cannot be used to produce executable files, although its program source code can still be compiled by a QuickBASIC 4.5, PDS 7.x or VBDOS 1.0 compiler, if available. QuickBASIC 1.00 for the [[Classic Mac OS|Apple Macintosh]] operating system was launched in 1988. It was officially supported on machines running [[System 6]] with at least 1 MB of RAM.<ref>[http://support.microsoft.com/kb/31937 QuickBASIC for Macintosh system requirements]</ref> QuickBASIC could also be run on [[System 7]], as long as 32-bit addressing was disabled. QuickBASIC programming was significantly different on the Macintosh, because the system offered a graphical user interface and an event-driven programming model.<ref>{{cite book |last1=Halvorson |first1=Michael |last2=Rygmyr |first2=David |title=Learn BASIC for the Apple Macintosh Now |date=1990 |publisher=Microsoft Press |location=Redmond, WA}}</ref> ==Syntax example== [[Hello, World]], shortest version: <syntaxhighlight lang="QBasic"> ?"Hello, World" </syntaxhighlight> [[Hello, World]], extended version: <syntaxhighlight lang="QBasic"> CLS PRINT "Hello, World" END </syntaxhighlight> [[99 Bottles of Beer]]: <syntaxhighlight lang="QBasic"> LET BOTTLES = 99: LET BOTTLES$ = "99": LET BOTTLE$ = " bottles" FOR A = 1 TO 99 PRINT BOTTLES$; BOTTLE$; " of beer on the wall, "; BOTTLES$; BOTTLE$; " of beer." LET BOTTLES = BOTTLES - 1 IF BOTTLES > 0 THEN LET BOTTLES$ = LTRIM$(STR$(BOTTLES)): LET PRONOUN$ = "one" IF BOTTLES = 0 THEN LET BOTTLES$ = "no more": LET PRONOUN$ = "it" IF BOTTLES <> 1 THEN LET BOTTLE$ = " bottles" IF BOTTLES = 1 THEN LET BOTTLE$ = " bottle" PRINT "Take "; PRONOUN$; " down and pass it around, "; BOTTLES$; BOTTLE$; " of beer on the wall." PRINT: NEXT A PRINT "No more bottles of beer on the wall, no more bottles of beer." PRINT "Go to the store and buy some more, 99 bottles of beer on the wall." </syntaxhighlight> Graphics example: <syntaxhighlight lang="QBasic"> SCREEN 13 DIM a(3976) AS INTEGER, b(3976) AS INTEGER, c(3976) AS INTEGER DIM d(3976) AS INTEGER, e(3976) AS INTEGER col% = 16: col1% = 16: col2% = 16: col3% = 16: col4% = 16 col5% = 16: col6% = 16: col7% = 16: flag = 1: flag1 = 1 flag2 = 1: flag3 = 1:flag4 = 1: flag5 = 1: flag6 = 1: flag7 = 1 DO GET (1, 38)-(318, 62), a PUT (2, 38), a, PSET LINE (1, 38)-(1, 62), col% IF flag = 1 THEN col% = col% + 1: IF col% = 32 THEN flag = 2 IF flag = 2 THEN col% = col% - 1: IF col% = 16 THEN flag = 1 GET (2, 63)-(319, 87), b PUT (1, 63), b, PSET LINE (319, 63)-(319, 87), col1% IF flag1 = 1 THEN col1% = col1% + 1: IF col1% = 32 THEN flag1 = 2 IF flag1 = 2 THEN col1% = col1% - 1: IF col1% = 16 THEN flag1 = 1 GET (1, 88)-(318, 112), c PUT (2, 88), c, PSET LINE (1, 88)-(1, 112), col2% IF flag2 = 1 THEN col2% = col2% + 1: IF col2% = 32 THEN flag2 = 2 IF flag2 = 2 THEN col2% = col2% - 1: IF col2% = 16 THEN flag2 = 1 GET (2, 113)-(319, 137), d PUT (1, 113), d, PSET LINE (319, 113)-(319, 137), col3% IF flag3 = 1 THEN col3% = col3% + 1: IF col3% = 32 THEN flag3 = 2 IF flag3 = 2 THEN col3% = col3% - 1: IF col3% = 16 THEN flag3 = 1 GET (1, 138)-(318, 162), e PUT (2, 138), e, PSET LINE (1, 138)-(1, 162), col4% IF flag4 = 1 THEN col4% = col4% + 1: IF col4% = 32 THEN flag4 = 2 IF flag4 = 2 THEN col4% = col4% - 1: IF col4% = 16 THEN flag4 = 1 LOOP UNTIL LEN(INKEY$) </syntaxhighlight> [[Bubble sort]]: <syntaxhighlight lang="QBasic"> REM sample of bubble sort N = 10 DIM A(N) AS INTEGER FOR L = 1 TO N A(L) = INT(RND * 10 + 1) NEXT FOR X = 1 TO N FOR Y = 1 TO N - 1 IF A(X) < A(Y) THEN SWAP A(X), A(Y) NEXT NEXT FOR L = 1 TO N PRINT A(L) NEXT END </syntaxhighlight> ==Current uses== QuickBASIC has a community of hobby programmers who use the compiler to write [[video game]]s, [[GUI]]s and [[Utility software|utilities]].<ref>{{cite web|url=http://www.qbasic.com/games/|title=QBASIC Games Directory|date=2008-11-29|access-date=2008-12-28|archive-url=https://web.archive.org/web/20140904181932/http://www.qbasic.com/games/|archive-date=4 September 2014}}</ref><ref>{{cite web|url=http://qbasicgui.datacomponents.net/|title=GUI Reviews|date=2008-12-19|access-date=2008-12-28}}</ref><ref>{{cite web|url=http://theguiblog.com/|title=The (BASIC) GUI Blog|date=2011-02-06|access-date=2011-02-06}}</ref> The community has several Web sites, [[message board]]s and [[online magazine]]s.<ref>{{cite web|url=http://qbasicnews.com/|title=Qbasic/Quickbasic News|date=2008-12-26|access-date=2008-12-28}}</ref><ref>{{cite web|url=http://www.petesqbsite.com/sections/express/express.shtml|title=QB Express|year=2008|access-date=2008-12-28|publisher=Pete's QBASIC/QuickBasic Site}}</ref> Today, programmers sometimes use DOS [[emulator]]s, such as [[DOSBox]], to run QuickBASIC on [[Linux]] and on modern [[personal computer]]s that no longer support the compiler.<ref>{{cite web|url=http://penguinpetes.com/b2evo/index.php?title=howto_play_with_your_old_qbasic_programs&more=1&c=1&tb=1&pb=1|title=HOWTO Play With Your Old QBasic Programs on Linux |date=2007-03-31|access-date=2008-12-28|author=Pete Trbovich}}</ref><ref>{{cite web|url=http://www.petesqbsite.com/sections/express/issue28/index.html#kiyotewolf|title=Kiyote Wolf on a Variety of Subjects|date= 2008-05-10|access-date= 2008-12-28|author= Kiyote Wolf|publisher= QB Express}}</ref> Alternatives to this include [[FreeBASIC]] and [[QB64]], but they cannot yet run ''all'' QBasic/QuickBASIC programs.<ref>For example, FreeBASIC does not yet support QBasic's "ON PLAY" callback for background music, or the use of [[PEEK and POKE]] to [[I/O port]]s.</ref> Since 2008, a set of [[TCP/IP]] routines for QuickBASIC 4.x and 7.1 has revitalized some interest in the software. In particular, the [[vintage computer]] hobbyist community has been able to write software for old computers that run DOS, allowing these machines to access other computers through a [[local area network|LAN]] or the internet. This has allowed systems even as old as an [[8088]] to serve new functions, such as acting as a [[Web server]] or using [[IRC]].<ref>{{cite web|url=http://www.rubbermallet.org/index.html|title= rubbermallet.org: Where QuickBASIC gets much more powerful|date= 2008-07-12|access-date= 2008-12-28|author=Mike Chambers}}</ref> ==Successors== Microsoft's [[Visual Basic (classic)|Visual Basic]] was the successor of QuickBASIC. Other compilers, like [[PowerBASIC]] and [[FreeBASIC]], have varying degrees of compatibility. [[QB64]], a [[multiplatform]] QuickBASIC to C++ translator, retains close to 100% compatibility and compiles natively for [[Microsoft Windows|Windows]], [[Linux]] and [[macOS]].<ref>{{cite web|url=http://basicprogramming.org/pcopy/issue70 |title=Interview With Galleon |date=2008-05-26 |access-date=2008-07-14 |author-first=E. K. |author-last=Virtanen |url-status=unfit |archive-url=https://web.archive.org/web/20160306225525/http://basicprogramming.org/pcopy/issue70 |archive-date=March 6, 2016 }}</ref> ==See also== * [[QBasic]] * [[Turbo Basic]] * [[QB64]] ==References== {{Reflist|30em}} == External links == * [https://winworldpc.com/product/quickbasic/45 QuickBasic 4.5] {{BASIC}} {{Integrated development environments}} {{DEFAULTSORT:Quickbasic}} [[Category:Discontinued Microsoft BASICs]] <!-- A subcategory of [[Category:Microsoft development tools]] --> [[Category:BASIC compilers]] [[Category:DOS software]] [[Category:1985 software]] [[Category:Classic Mac OS programming tools]] [[Category:BASIC programming language family]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:BASIC
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Distinguish
(
edit
)
Template:Infobox software
(
edit
)
Template:Integrated development environments
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)