You are on page 1of 14

Object1

Share Africa's rich heritage and cultures expressed through music, song, dance, and movement and
win great prizes!
Find out more

QuickBASIC
From Wikipedia, the free encyclopedia

Not to be confused with QBasic.


QuickBASIC

The opening screen of QuickBasic


Developer(s)
Microsoft
Initial release
1985; 32 years ago
Stable release
4.5 / 1988; 29 years ago
Development status Abandoned
Operating system MS-DOS and Classic Mac OS
License
Proprietary commercial software
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 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

1 History
2 Syntax example
3 Current uses
4 Successors
5 See also
6 External links
7 References

History
Microsoft released the first version of QuickBASIC on August 18, 1985 on a single 5.25" 360kB
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
for MS-DOS 1.0, 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; this was not possible on
Motorola 68040-based Macintosh machines.

Syntax example
Hello, World - Shortest version:
? "Hello, World"

Hello, World - Extended version:


CLS
PRINT "Hello, World"
END

99 bottles of beer:
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."

Complex graphics example:


'Code By Nicholas Beltran 18/10/97
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% +
IF flag2 = 2 THEN col2% = col2% GET (2, 113)-(319, 137), d
PUT (1, 113), d, PSET
LINE (319, 113)-(319, 137), col3%
IF flag3 = 1 THEN col3% = col3% +
IF flag3 = 2 THEN col3% = col3% GET (1, 138)-(318, 162), e
PUT (2, 138), e, PSET
LINE (1, 138)-(1, 162), col4%
IF flag4 = 1 THEN col4% = col4% +
IF flag4 = 2 THEN col4% = col4% LOOP UNTIL LEN(INKEY$)

1: IF col2% = 32 THEN flag2 = 2


1: IF col2% = 16 THEN flag2 = 1

1: IF col3% = 32 THEN flag3 = 2


1: IF col3% = 16 THEN flag3 = 1

1: IF col4% = 32 THEN flag4 = 2


1: IF col4% = 16 THEN flag4 = 1

Current uses
QuickBASIC continues to be used in some schools, usually as part of an introduction to
programming[citation needed], though it is fast becoming replaced by more popular compilers. It
also 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 computer hardware that no longer supports the compiler.[11][12]
One alternative to this is FreeBASIC, but it 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
Turbo Basic

External links
Version History of Microsoft QuickBasic for MS-DOS

References
1.
Early Microsoft documentation rendered the name exclusively as "QuickBASIC", although
later references on Microsoft's Web site also use "QuickBasic".
Microsoft Knowledge Base 45850: Memory Management in QuickBasic & Basic
Compiler
QuickBASIC 4.5 was delivered on a set of five 360 kB 5.25" DSDD floppy disks or three
720 kB 3.5" DSDD floppy disks. The three-disk version could also be installed from
1.2 MB 5.25" or 1.44 MB 3.5" DSHD disks. To save costs, the files were compressed and
later versions were shipped on just four 5.25" disks or two 3.5" disks.
Microsoft Knowledge Base article 65291
QuickBASIC for Macintosh system requirements
"QBASIC Games Directory". 2008-11-29. Archived from the original on 4 September
2014. Retrieved 2008-12-28.
"GUI Reviews". 2008-12-19. Retrieved 2008-12-28.
"The (BASIC) GUI Blog". 2011-02-06. Retrieved 2011-02-06.
"Qbasic/Quickbasic News". 2008-12-26. Retrieved 2008-12-28.
"QB Express". Pete's QBASIC/QuickBasic Site. 2008. Retrieved 2008-12-28.
Pete Trbovich (2007-03-31). "HOWTO Play With Your Old QBasic Programs on Linux".
Retrieved 2008-12-28.
Kiyote Wolf (2008-05-10). "Kiyote Wolf on a Variety of Subjects". QB Express. Retrieved
2008-12-28.
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.
Mike Chambers (2008-07-12). "rubbermallet.org: Where QuickBASIC gets much more
powerful". Retrieved 2008-12-28.

15.E.K.Virtanen (2008-05-26). "Interview With Galleon". Archived from the original on


March 6, 2016. Retrieved 2008-07-14.
[hide]

Dialects of the BASIC programming language (list)


Classic

Altair BASIC
Applesoft BASIC
Atari BASIC
Atari Microsoft BASIC
Atari ST BASIC

Procedure-oriented

BASICA
BASIC A+
BASIC Programming
BASIC XE
BASIC XL
Casio BASIC
Chipmunk Basic
Color BASIC
Commodore BASIC
Extended Color BASIC
Dartmouth BASIC
Disk Extended Color BASIC
Family BASIC
GFA BASIC
GW-BASIC
HP BASIC for OpenVMS
HP Time-Shared BASIC
IBM BASIC
Integer BASIC
Locomotive BASIC
Mallard BASIC
Microsoft BASIC
MSX BASIC
Pure Basic
Rocky Mountain BASIC
S'-BASIC (Tandy, Casio, Sharp Pocket Computers)
ScriptBasic
Sinclair BASIC
Southampton BASIC System
STOS BASIC
TI BASIC (TI 99/4A)
TI-BASIC (calculators)
TI Extended BASIC (aka XBasic)
Tiny BASIC
Turbo-Basic XL
Tymshare SUPER BASIC
UBASIC
Vilnius BASIC
XBasic

AmigaBASIC
AMOS BASIC
ASIC
BBC BASIC
Beta BASIC
DarkBASIC
FreeBASIC

With object extensions

For mobile devices

Microsoft

FutureBASIC
GFA BASIC
GLBasic
Liberty BASIC
Microsoft Small Basic
PowerBASIC
PureBasic
QBasic
QB64
QuickBASIC
SmallBASIC
SuperBASIC
ThinBasic
True BASIC
Turbo Basic
XBasic
Xblite
Basic4ppc
Visual Test

AutoIt
Basic For Qt (KBasic)
BlitzMax
Chipmunk Basic
FreeBASIC
Gambas
GLBasic
Monkey X
OpenOffice Basic
PowerBASIC
ProvideX
RapidQ
REALbasic
Run BASIC
Visual Basic
Visual Basic .NET
Xojo

Basic4android
Basic4ppc
GLBasic
NS Basic

Microsoft BASIC
MBASIC
IBM BASIC/BASICA

GW-BASIC
QuickBASIC
QBasic
VBScript
Visual Basic
VBA
Visual Basic .NET
Embedded Visual Basic
VB 5 for Microsoft Excel 5.0
VSTO
VSTA
WordBASIC
TRS-80 Basics (Level I, Level II, Level III)
Microsoft Small Basic

Basic For Qt
Gambas
Hummingbird Basic
LotusScript
WinWrapBasic
Xojo

Third-party VB-like

Categories:

BASIC programming language family


Discontinued Microsoft BASICs
BASIC compilers
DOS software
1985 software
Classic Mac OS programming tools

1. Navigation menu

Not logged in
Talk
Contributions
Create account
Log in

Article
Talk

Read
Edit
View history

Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store

Interaction

Help
About Wikipedia
Community portal
Recent changes
Contact page

Tools

What links here


Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page

Print/export
Create a book
Download as PDF

Printable version

Languages

Catal
etina
Deutsch

Espaol
Franais

Italiano

Polski
Portugus

Suomi
Svenska
Trke

Edit links
This page was last modified on 9 December 2016, at 13:16.
Text is available under the Creative Commons Attribution-ShareAlike License; 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
Developers
Cookie statement
Mobile view

Main Page
Welcome to the QB64 Programming WIKI
QB64 is a modern version of the Basic programming language that allows programs created using
Quick Basic 4.5 or Qbasic to run on Windows XP, Vista, 7, 8, 8.1 and 10, Linux and Mac OSX.
It will work on 32 or 64 bit machines and has many new features such as stereo sound, improved
graphics and TCP/IP internet capabilities. QB64 can make reliable programs or games for the
entire family!
QB64 does not install any files outside of the qb64 folder or use the Registry! May require
Administrator permissions.
Programming in Basic is EASY! You don't need to learn much to get started as it uses many
statements and function words that are familiar to you. You can learn to program in days instead of
weeks! If you need help there is a forum to ask for help and this WIKI has many example
programs that you can run to see how things work. Download QB64 and take a ride into the
wonderful world of programming! We are sure that you will enjoy the experience! We have
programmers from age 10 to over 60. Welcome aboard!
QB64 Forums and Compiler Downloads by OS

Download the QB64 WIKI for Offline Reference (27.13 MB).


Offline WIKI Reference contributed by Steve McNeill.
Download the WIKI Offline Torrent(1441.8 kB)

It's a good idea to exclude "QB64.exe" from any real-time anti-virus


scanning to prevent IDE Module Errors!

This wiki is a work in progress. If you'd like to help out in any way, see this
page: Helping out.

Contents
[hide]
1
Keywor
ds:
2
Append
ix:
3 QB64
Informa
tion:
4
Commu
nity
links:

For discussions about this WIKI goto the QB64 Community Development
Forum.
Thank you for your interest in the BASIC language and QB64!

If FIREFOX browser does not copy page example code correctly use another browser or
download our Code Fix Addon :
Mozilla FireFox Code Copy Add On

Frequently Asked Questions about QB64


Keywords currently not supported by QB64
Keyword Not Supported in Linux or MAC versions

Keywords:
Keyword Reference - Alphabetical
Keyword Reference - By usage
Syntax Reference - QB64
Keywords currently not supported by QB64

Appendix:

Android Project (QB64 GL for Windows only at present)


Arrays
ASCII Character Codes
Batch Files
Binary Numbers
Boolean Operations
Clipboard
Converting Bytes to Bits
Console Window
Controller Devices (Keyboard, Mouse, Joystick, Gamepad)
DOS, Linux or Mac Commands
Downloading Files (TCP/IP)
Embedding Icons in EXE (Windows)
Environment (Windows Registry)
Hardware images (GL only)
Image file procedures
Keyboard Scan Codes
Libraries (SDL, C++, Windows, DLL)
Line numbers
LINKed or Merged Modules
Mathematical Operations
Memory Handling and Clipboard
Operating System Commands (DOS, Linux and Mac OSX)
PDS(7.1) Procedures (Currency type)

Phonetic spelling (spelling by sound)


Port Access Libraries (COM or LPT)
Program Installations
QB 4.5 Library Ports For QB64
Relational Operations
Removing line numbers
Resource Table extraction (Icon Extraction)
Screen Memory
SQL Client (database)
TCP/IP Message Format
Text, Fonts and Unicode Using Graphics
Tokenized Code (Quickbasic binary to text BAS file converter)
Unicode Code Pages
Variable Types
VB Script (program shortcuts with icon)
VB Procedures (Currency type)
Windows Printer Settings
Windows Registry Access
Windows User Paths
(Return to Table of Contents)

QB64 Information:

About QB64
QB64 licensing
QB64 FAQ
Installing QB64 on Windows, Linux and Mac
QB64 IDE and Compiler
Editing QB64 source - Tutorial by SMcNeill on editing the QB64 source to help in
Development.
ERROR Codes
QB64 GL Source Revisions
QB64 Tutorials
Known QB64 Issues
Keywords currently not supported by QB64
Syntax Notation Conventions (terminology)

Community links:
QB64 Main Site
QB64 Forum (Forum Tips)

QB64 Help Menu


WIKI Page Format

Page
Discussion
View source
History

Log in

Navigation

Main Page
Community portal
Current events
Recent changes
Random page
Help

Toolbox

What links here


Related changes
Special pages
Printable version
Permanent link

This page was last modified on 14 October 2016, at 18:54.


This page has been accessed 625,896 times.
Privacy policy
About QB64 Wiki
Disclaimers