QuickBASIC

Last updated
QuickBASIC
Developer(s) Microsoft
Initial release1985;38 years ago (1985)
Stable release
7 / 1990;33 years ago (1990)
Operating system MS-DOS, Classic Mac OS
Platform x86, Motorola 68000
Type Microsoft BASIC
License Proprietary
Website www.microsoft.com   OOjs UI icon edit-ltr-progressive.svg

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 interpreter. Microsoft marketed QuickBASIC as the introductory level for their BASIC Professional Development System. [1] Microsoft marketed two other similar IDEs for C and Pascal, viz QuickC and QuickPascal.

Contents

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 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. [2]

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. [3] At the same time, the QuickBASIC packaging was silently changed so that the disks used the same compression used for BASIC PDS 7.1. [4] 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. The successor to QuickBASIC and Basic PDS was 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 Apple Macintosh operating system was launched in 1988. It was officially supported on machines running System 6 with at least 1 MB of RAM. [5] QuickBASIC could also be run on System 7, as long as 32-bit addressing was disabled.

Syntax example

Hello, World, shortest version:

?"Hello, World"

Hello, World, extended version:

CLSPRINT"BARNA SAHA"END

99 Bottles of Beer:

LETBOTTLES=99:LETBOTTLES$="99":LETBOTTLE$=" bottles"FORA=1TO99PRINTBOTTLES$;BOTTLE$;" of beer on the wall, ";BOTTLES$;BOTTLE$;" of beer."LETBOTTLES=BOTTLES-1IFBOTTLES>0THENLETBOTTLES$=LTRIM$(STR$(BOTTLES)):LETPRONOUN$="one"IFBOTTLES=0THENLETBOTTLES$="no more":LETPRONOUN$="it"IFBOTTLES<>1THENLETBOTTLE$=" bottles"IFBOTTLES=1THENLETBOTTLE$=" bottle"PRINT"Take ";PRONOUN$;" down and pass it around, ";BOTTLES$;BOTTLE$;" of beer on the wall."PRINT:NEXTAPRINT"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."

Graphics example:

SCREEN13DIMa(3976)ASINTEGER,b(3976)ASINTEGER,c(3976)ASINTEGERDIMd(3976)ASINTEGER,e(3976)ASINTEGERcol%=16:col1%=16:col2%=16:col3%=16:col4%=16col5%=16:col6%=16:col7%=16:flag=1:flag1=1flag2=1:flag3=1:flag4=1:flag5=1:flag6=1:flag7=1DOGET(1,38)-(318,62),aPUT(2,38),a,PSETLINE(1,38)-(1,62),col%IFflag=1THENcol%=col%+1:IFcol%=32THENflag=2IFflag=2THENcol%=col%-1:IFcol%=16THENflag=1GET(2,63)-(319,87),bPUT(1,63),b,PSETLINE(319,63)-(319,87),col1%IFflag1=1THENcol1%=col1%+1:IFcol1%=32THENflag1=2IFflag1=2THENcol1%=col1%-1:IFcol1%=16THENflag1=1GET(1,88)-(318,112),cPUT(2,88),c,PSETLINE(1,88)-(1,112),col2%IFflag2=1THENcol2%=col2%+1:IFcol2%=32THENflag2=2IFflag2=2THENcol2%=col2%-1:IFcol2%=16THENflag2=1GET(2,113)-(319,137),dPUT(1,113),d,PSETLINE(319,113)-(319,137),col3%IFflag3=1THENcol3%=col3%+1:IFcol3%=32THENflag3=2IFflag3=2THENcol3%=col3%-1:IFcol3%=16THENflag3=1GET(1,138)-(318,162),ePUT(2,138),e,PSETLINE(1,138)-(1,162),col4%IFflag4=1THENcol4%=col4%+1:IFcol4%=32THENflag4=2IFflag4=2THENcol4%=col4%-1:IFcol4%=16THENflag4=1LOOPUNTILLEN(INKEY$)

Bubble sort:

REM sample of bubble sortN=10DIMA(N)ASINTEGERFORL=1TONA(L)=INT(RND*10+1)NEXTFORX=1TONFORY=1TON-1IFA(X)<A(Y)THENSWAPA(X),A(Y)NEXTNEXTFORL=1TONPRINTA(L)NEXTEND

Current uses

QuickBASIC has an unofficial community of hobby programmers who use the compiler to write video games, GUIs and utilities. [6] [7] [8] The community has dedicated several Web sites, message boards and online magazines to the language. [9] [10]

Today, programmers sometimes use DOS emulators, such as DOSBox, to run QuickBASIC on Linux and on modern personal computers that no longer supports the compiler. [11] [12] Alternatives to this include FreeBASIC and QB64, but they cannot yet run all QBasic/QuickBASIC programs. [13]

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 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. [14]

Successors

Microsoft's 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 Windows, Linux and macOS. [15]

See also

Related Research Articles

Applesoft BASIC is a dialect of Microsoft BASIC, developed by Marc McDonald and Ric Weiland, supplied with the Apple II series of computers. It supersedes Integer BASIC and is the BASIC in ROM in all Apple II series computers after the original Apple II model. It is also referred to as FP BASIC because of the Apple DOS command used to invoke it, instead of INT for Integer BASIC.

<span class="mw-page-title-main">BASIC</span> Family of programming languages

BASIC is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1963. They wanted to enable students in non-scientific fields to use computers. At the time, nearly all computers required writing custom software, which only scientists and mathematicians tended to learn.

<span class="mw-page-title-main">GW-BASIC</span> Dialect of the BASIC programming language

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 systems on IBM PC compatibles by Microsoft.

Microsoft BASIC is the foundation software product of the Microsoft company and evolved into a line of BASIC interpreters and compiler(s) adapted for many different microcomputers. It first appeared in 1975 as Altair BASIC, which was the first version of BASIC published by Microsoft as well as the first high-level programming language available for the Altair 8800 microcomputer.

Apple DOS is the family of disk operating systems for the Apple II series of microcomputers from late 1978 through early 1983. It was superseded by ProDOS in 1983. Apple DOS has three major releases: DOS 3.1, DOS 3.2, and DOS 3.3; each one of these three releases was followed by a second, minor "bug-fix" release, but only in the case of Apple DOS 3.2 did that minor release receive its own version number, Apple DOS 3.2.1. The best-known and most-used version is Apple DOS 3.3 in the 1980 and 1983 releases. Prior to the release of Apple DOS 3.1, Apple users had to rely on audio cassette tapes for data storage and retrieval.

A foreign key is a set of attributes in a table that refers to the primary key of another table. The foreign key links these two tables. Another way to put it: In the context of relational databases, a foreign key is a set of attributes subject to a certain kind of inclusion dependency constraints, specifically a constraint that the tuples consisting of the foreign key attributes in one relation, R, must also exist in some other relation, S, and furthermore that those attributes must also be a candidate key in S. In simpler words, a foreign key is a set of attributes that references a candidate key. For example, a table called TEAM may have an attribute, MEMBER_NAME, which is a foreign key referencing a candidate key, PERSON_NAME, in the PERSON table. Since MEMBER_NAME is a foreign key, any value existing as the name of a member in TEAM must also exist as a person's name in the PERSON table; in other words, every member of a TEAM is also a PERSON.

<i>Gorillas</i> (video game) 1991 video game

Gorillas, also known under the source code's file name GORILLA.BAS, is a video game first distributed with MS-DOS 5 and published in 1991 by Microsoft. It is a turn-based artillery game. With allusions to King Kong, the game consists of two gorillas throwing explosive bananas at each other above a city skyline. The players can adjust the angle and velocity of each throw as well as the gravitational pull of the planet.

The Atari Microsoft BASIC and Atari Microsoft BASIC II variants of the 6502-version of Microsoft BASIC ported to the Atari 8-bit machines. The first version, released 1981, required 32 KB of RAM and was supplied on floppy disk. The second version, released the next year, had most of the code on a ROM cartridge with additional functions on an optional floppy.

<span class="mw-page-title-main">Turbo-BASIC XL</span>

Turbo-BASIC XL is an advanced version of the BASIC programming language for the Atari 8-bit family of home computers. It is a compatible superset of the Atari BASIC that shipped with the Atari 8-bit systems. Turbo-Basic XL was developed by Frank Ostrowski and published in the December 1985 issue of German computer magazine Happy Computer. A version for the 400/800 models was released shortly after as Frost Basic 1.4. Several modified versions working with different DOS systems have been released by other authors.

Donkey, often known by its filename DONKEY.BAS, is a video game written in 1981, and included with early versions of the IBM PC DOS operating system distributed with the original IBM PC. It is a top-down driving game in which the player must avoid hitting donkeys. The game was written by Microsoft co-founder Bill Gates and early employee Neil Konzen.

Microsoft QuickC is a discontinued commercial integrated development environment (IDE) product engineered by Microsoft for the C programming language, superseded by Visual C++ Standard Edition. Its main competitor was Borland Turbo C.

BSAVE and BLOAD are commands in many varieties of the BASIC programming language. BSAVE copies RAM to a binary file, and BLOAD copies the contents of the file to RAM. The term "BSAVE image" could mean any of various raw image formats of video display controllers, or more generally any file containing the raw contents of a section of memory.

<span class="mw-page-title-main">QB64</span> IDE for the BASIC programming language

QB64 is a self-hosting BASIC compiler for Microsoft Windows, Linux and Mac OS X, designed to be compatible with Microsoft QBasic and QuickBASIC. QB64 is a transpiler to C++, which is integrated with a C++ compiler to provide compilation via C++ code and GCC optimization.

<span class="mw-page-title-main">Altair BASIC</span> Programming language interpreter software, first product developed by Microsoft

Altair BASIC is a discontinued interpreter for the BASIC programming language that ran on the MITS Altair 8800 and subsequent S-100 bus computers. It was Microsoft's first product, distributed by MITS under a contract. Altair BASIC was the start of the Microsoft BASIC product range.

<span class="mw-page-title-main">QBasic</span> IDE for the BASIC programming language

QBasic is an integrated development environment (IDE) and interpreter for a variety of dialects of BASIC which are based on QuickBASIC. Code entered into the IDE is compiled to an intermediate representation (IR), and this IR is immediately executed on demand within the IDE.

The IBM Personal Computer Basic, commonly shortened to IBM BASIC, is a programming language first released by IBM with the IBM Personal Computer, Model 5150 in 1981. IBM released four different versions of the Microsoft BASIC interpreter, licensed from Microsoft for the PC and PCjr. They are known as Cassette BASIC, Disk BASIC, Advanced BASIC (BASICA), and Cartridge BASIC. Versions of Disk BASIC and Advanced BASIC were included with IBM PC DOS up to PC DOS 4. In addition to the features of an ANSI standard BASIC, the IBM versions offered support for the graphics and sound hardware of the IBM PC line. Source code could be typed in with a full-screen editor, and very limited facilities were provided for rudimentary program debugging. IBM also released a version of the Microsoft BASIC compiler for the PC, concurrently with the release of PC DOS 1.10 in 1982.

<span class="mw-page-title-main">Alice Marriott (actress)</span>

Alice Marriott, known professionally as Mrs Marriott or Miss Marriott, was a nineteenth-century British stage actress. She was known for regularly playing the part of Hamlet in doublet and hose, to good reviews. She married Robert Edgar, lessee of Sadler's Wells Theatre, and took responsibility for management and production at this and other theatres for some years, besides touring America and Britain. Towards the end of her career she played alongside Sir Henry Irving and Dame Ellen Terry at the Lyceum Theatre, London, but it was Alice Marriott who "made the female Hamlet respectable in England." She was the grandmother of Edgar Wallace and Marriott Edgar.

<span class="mw-page-title-main">BASIC interpreter</span> Interpreter that enables users to enter and run programs in the BASIC language

A BASIC interpreter is an interpreter that enables users to enter and run programs in the BASIC language and was, for the first part of the microcomputer era, the default application that computers would launch. Users were expected to use the BASIC interpreter to type in programs or to load programs from storage.

References

  1. Early Microsoft documentation rendered the name exclusively as "QuickBASIC", although later references on Microsoft's Web site also use "QuickBasic".
  2. Microsoft Knowledge Base 45850: Memory Management in QuickBasic & Basic Compiler
  3. 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.
  4. Microsoft Knowledge Base article 65291
  5. QuickBASIC for Macintosh system requirements
  6. "QBASIC Games Directory". 2008-11-29. Archived from the original on 4 September 2014. Retrieved 2008-12-28.
  7. "GUI Reviews". 2008-12-19. Retrieved 2008-12-28.
  8. "The (BASIC) GUI Blog". 2011-02-06. Retrieved 2011-02-06.
  9. "Qbasic/Quickbasic News". 2008-12-26. Retrieved 2008-12-28.
  10. "QB Express". Pete's QBASIC/QuickBasic Site. 2008. Retrieved 2008-12-28.
  11. Pete Trbovich (2007-03-31). "HOWTO Play With Your Old QBasic Programs on Linux" . Retrieved 2008-12-28.
  12. Kiyote Wolf (2008-05-10). "Kiyote Wolf on a Variety of Subjects". QB Express. Retrieved 2008-12-28.
  13. 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 ports.
  14. Mike Chambers (2008-07-12). "rubbermallet.org: Where QuickBASIC gets much more powerful" . Retrieved 2008-12-28.
  15. Virtanen, E. K. (2008-05-26). "Interview With Galleon". Archived from the original on March 6, 2016. Retrieved 2008-07-14.{{cite web}}: CS1 maint: unfit URL (link)