Microsoft BASIC
Encyclopedia
Microsoft BASIC was the foundation product of the Microsoft
company. It first appeared in 1975 as Altair BASIC
, which was the first BASIC, and the first high level programming language available for the MITS Altair 8800
hobbyist microcomputer
.
interpreter was developed by Microsoft founders Paul Allen
and Bill Gates
with help from Monte Davidoff
, using a self made Intel 8080
software simulator running on a PDP-10 minicomputer
. The dialect of BASIC was similar to Digital Equipment Corporation
interpreters, especially in string operations, which varied between BASIC implementations. BASIC used dynamically allocated strings which stored their size. Early BASIC only supported single letter and digit names, but Microsoft BASIC supported long variable names. Only two characters were significant though; AD, ADDRESS1, and ADDRESS2 would all point to the same value. The runtime symbol table, used a linear search so that a program which used many distinct variables would run much slower than a program which used a single array for all its variables.
It was delivered on paper tape
and in its original version took 4 KB
of memory. The extended 8 KB version was then generalized into BASIC-80 (8080/85, Z80
), and ported into BASIC-68 (6800
), BASIC-69 (6809
), and MOS Technology 6502
-BASIC (unfortunately spilling over to 9 KB
, in an era when 8 KB ROM chips were standard), as well as the 16-bit BASIC-86 (8086/88
). It was ideal for ROM
-based computers since it did not require an editor (each line requires a number), nor a disk drive to store object code or linked executable. It was less sophisticated than industrial desktop computers such as the HP 9830
which had dedicated keys to load, store, and keys for editing within a line and debugging, but personal computer pricing, in contrast, started at $1,565, not $7,000.
and personal computer
s of the 1970s and especially the 1980s, and extended along the way. Contrary to the original Altair BASIC, most home computer BASICs were resident in ROM
, and thus were available on the machines at power-on in the form of the characteristic "
of many home computers' rudimentary operating system
s.
, GW-BASIC
, QuickBasic
, QBasic
) is no longer found on distributions of Microsoft Windows
or DOS
; however, it can be downloaded from various internet sites, and archives of DOS versions or old DOS disks which will still run on Pentium
class Windows XP
machines. The latest incarnation of Microsoft BASIC is Visual Basic .NET
which incorporates most of the features of C++
and C# and can be used to develop web forms, windows forms, console application
s and server-based applications. Most .NET code samples are presented in VB.NET as well as C#, and VB.NET continues to be favored by former Visual Basic programmers.
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
company. It first appeared in 1975 as Altair BASIC
Altair BASIC
Altair BASIC was an 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...
, which was the first BASIC, and the first high level programming language available for the MITS Altair 8800
Altair 8800
The MITS Altair 8800 was a microcomputer design from 1975 based on the Intel 8080 CPU and sold by mail order through advertisements in Popular Electronics, Radio-Electronics and other hobbyist magazines. The designers hoped to sell only a few hundred build-it-yourself kits to hobbyists, and were...
hobbyist microcomputer
Microcomputer
A microcomputer is a computer with a microprocessor as its central processing unit. They are physically small compared to mainframe and minicomputers...
.
Altair BASIC and early microcomputers
The Altair BASICAltair BASIC
Altair BASIC was an 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...
interpreter was developed by Microsoft founders Paul Allen
Paul Allen
Paul Gardner Allen is an American business magnate, investor, and philanthropist. Allen co-founded Microsoft with Bill Gates...
and Bill Gates
Bill Gates
William Henry "Bill" Gates III is an American business magnate, investor, philanthropist, and author. Gates is the former CEO and current chairman of Microsoft, the software company he founded with Paul Allen...
with help from Monte Davidoff
Monte Davidoff
Monte Davidoff is an American computer programmer. He graduated from Nicolet High School in Glendale, Wisconsin in 1974. He went on to Harvard University, where he majored in applied mathematics, the department at Harvard that, at the time, included computer science. He also worked at WHRB, the...
, using a self made Intel 8080
Intel 8080
The Intel 8080 was the second 8-bit microprocessor designed and manufactured by Intel and was released in April 1974. It was an extended and enhanced variant of the earlier 8008 design, although without binary compatibility...
software simulator running on a PDP-10 minicomputer
Minicomputer
A minicomputer is a class of multi-user computers that lies in the middle range of the computing spectrum, in between the largest multi-user systems and the smallest single-user systems...
. The dialect of BASIC was similar to Digital Equipment Corporation
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...
interpreters, especially in string operations, which varied between BASIC implementations. BASIC used dynamically allocated strings which stored their size. Early BASIC only supported single letter and digit names, but Microsoft BASIC supported long variable names. Only two characters were significant though; AD, ADDRESS1, and ADDRESS2 would all point to the same value. The runtime symbol table, used a linear search so that a program which used many distinct variables would run much slower than a program which used a single array for all its variables.
It was delivered on paper tape
Punched tape
Punched tape or paper tape is an obsolete form of data storage, consisting of a long strip of paper in which holes are punched to store data...
and in its original version took 4 KB
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
of memory. The extended 8 KB version was then generalized into BASIC-80 (8080/85, Z80
Zilog Z80
The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...
), and ported into BASIC-68 (6800
Motorola 6800
The 6800 was an 8-bit microprocessor designed and first manufactured by Motorola in 1974. The MC6800 microprocessor was part of the M6800 Microcomputer System that also included serial and parallel interface ICs, RAM, ROM and other support chips...
), BASIC-69 (6809
Motorola 6809
The Motorola 6809 is an 8-bit microprocessor CPU from Motorola, designed by Terry Ritter and Joel Boney and introduced 1978...
), and MOS Technology 6502
MOS Technology 6502
The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle and Bill Mensch for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured microprocessor on the market by a considerable margin, costing less than one-sixth the price of...
-BASIC (unfortunately spilling over to 9 KB
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
, in an era when 8 KB ROM chips were standard), as well as the 16-bit BASIC-86 (8086/88
Intel 8086
The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and mid-1978, when it was released. The 8086 gave rise to the x86 architecture of Intel's future processors...
). It was ideal for ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...
-based computers since it did not require an editor (each line requires a number), nor a disk drive to store object code or linked executable. It was less sophisticated than industrial desktop computers such as the HP 9830
HP 9830
The HP 9800 was a family of what were initially called programmable calculators and later desktop computers made by Hewlett-Packard, replacing their first HP 9100 calculator...
which had dedicated keys to load, store, and keys for editing within a line and debugging, but personal computer pricing, in contrast, started at $1,565, not $7,000.
Licenses to home computer makers
After the initial success of Altair BASIC, Microsoft BASIC became the basis for a lucrative software licensing business, being ported to the majority of the numerous homeHome computer
Home computers were a class of microcomputers entering the market in 1977, and becoming increasingly common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a single nontechnical user...
and personal computer
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...
s of the 1970s and especially the 1980s, and extended along the way. Contrary to the original Altair BASIC, most home computer BASICs were resident in ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...
, and thus were available on the machines at power-on in the form of the characteristic "
READY.
"-prompt. Hence, Microsoft's and other variants of BASIC constituted a significant and visible part of the user interfaceUser interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
of many home computers' rudimentary operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s.
Modern descendants
Microsoft BASIC (BASICAMicrosoft BASICA
IBM BASICA is a disk-based BASIC interpreter written by Microsoft for PC-DOS. BASICA used the ROM-resident code of "IBM Cassette BASIC" which was included with early models of IBM's PC. It added functions such as diskette file access, storing programs on disk, and monophonic music through the PC's...
, GW-BASIC
GW-BASIC
GW-BASIC was a dialect of the programming language BASIC developed by Microsoft from BASICA, originally for Compaq. It is compatible with Microsoft/IBM BASICA, but was disk based and did not need the ROM BASIC. It was bundled with MS-DOS operating systems on IBM PC compatibles by Microsoft...
, QuickBasic
QuickBASIC
Microsoft QuickBASIC is an Integrated Development Environment 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 Mac OS...
, QBasic
QBasic
QBasic is an IDE and interpreter for a variant of the BASIC programming language which is based on QuickBASIC. Code entered into the IDE is compiled to an intermediate form, and this intermediate form is immediately interpreted on demand within the IDE. It can run under nearly all versions of DOS...
) is no longer found on distributions of Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
or DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...
; however, it can be downloaded from various internet sites, and archives of DOS versions or old DOS disks which will still run on Pentium
Pentium compatible processor
A Pentium compatible processor is a 32-bit processor computer chip which supports the instructions in the IA-32 instruction set that were implemented by the Intel P5 Pentium processor family...
class Windows XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...
machines. The latest incarnation of Microsoft BASIC is Visual Basic .NET
Visual Basic .NET
Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...
which incorporates most of the features of C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
and C# and can be used to develop web forms, windows forms, console application
Console application
A console application is a computer program designed to be used via a text-only computer interface, such as a text terminal, the command line interface of some operating systems or the text-based interface included with most Graphical User Interface operating systems, such as the Win32 console in...
s and server-based applications. Most .NET code samples are presented in VB.NET as well as C#, and VB.NET continues to be favored by former Visual Basic programmers.
Variants and derivatives of Microsoft BASIC
- Altair BASICAltair BASICAltair BASIC was an 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...
(MITS Altair and other S-100 computers) - Amiga BASICAmigaBASICAmigaBASIC was an interpreted BASIC programming language implementation for the Amiga, designed and written by Microsoft. AmigaBASIC shipped with AmigaOS versions 1.1 to 1.3...
(Commodore Amiga family) - Applesoft BASICApplesoft BASICApplesoft BASIC was a dialect of Microsoft BASIC supplied with the Apple II series of computers. It superseded Integer BASIC and was the BASIC in ROM in all Apple II series computers after the original Apple II model. It was also referred to as FP because of the command used to invoke it instead...
(Apple II family) - Atari Microsoft BASICAtari Microsoft BASICThe Atari Microsoft BASIC and Atari Microsoft BASIC II variants of the BASIC programming language were cartridge or floppy disk packaged versions of the Microsoft BASIC dialect ported to the Atari 8-bit machines....
I and II (Atari 8-bit family) - BASICA ("BASIC Advanced") (PC-DOS, on IBM PC)
- Color BASICColor BASICColor BASIC is the implementation of Microsoft BASIC that is included in the ROM of the Tandy/Radio Shack TRS-80 Color Computers manufactured between 1980 and 1991. BASIC is a high level language with simple syntax that makes it easy for novices to write simple programs. BASIC is interpreted,...
(TRS-80 Color Computer) - Commodore BASICCommodore BASICCommodore BASIC, also known as PET BASIC, is the dialect of the BASIC programming language used in Commodore International's 8-bit home computer line, stretching from the PET of 1977 to the C128 of 1985...
(Commodore 8-bit family, incl C64) - Extended Color BASIC (TRS-80 Color Computer and Dragon 32/64Dragon 32/64The Dragon 32 and Dragon 64 are home computers that were built in the 1980s. The Dragons are very similar to the TRS-80 Color Computer , and were produced for the European market by Dragon Data, Ltd., in Port Talbot, Wales, and for the US market by Tano of New Orleans, Louisiana...
) - IBM Cassette BASICIBM Cassette BASICIBM Cassette BASIC was a version of the Microsoft BASIC programming language licensed by IBM for the IBM PC. It was included in the BIOS ROM of the original IBM PC. Cassette BASIC provided the default user interface if there was no floppy disk drive installed, or if the boot code did not find a...
(Original IBM PC, built into ROM) - Galaksija BASICGalaksija BASICGalaksija BASIC was the BASIC interpreter of the Galaksija build-it-yourself home computer from Yugoslavia. While being partially based on code taken from TRS-80 Level 1 BASIC, which the creator believed to have been a Microsoft BASIC, the extensive modifications of Galaksija BASIC—such as to...
(Galaksija home computer) - GW-BASIC (BASICA for MS-DOS, on PC compatibles)
- Microsoft Level III BASIC (Tandy/Radio-Shack TRS-80)
- MBASICMBASICMBASIC is the Microsoft BASIC implementation of BASIC for the CP/M operating system. MBASIC is a descendant of the original Altair BASIC interpreters that were among Microsoft's first products. MBASIC was one of the two versions of BASIC bundled with the Osborne 1 computer...
(CP/M, on 8080/85 and Z80 based computers) - MS BASIC for Macintosh (Mac OS on Apple Macintosh)
- MSX BASICMSX BASICMSX BASIC is a dialect of the BASIC programming language. It is an extended version of Microsoft Standard BASIC Version 4.5, and includes support for graphic, music, and various peripherals attached to MSX Personal Computers. Generally, MSX-BASIC is designed to follow GW-BASIC, which is one of the...
(MSX standard home computers) - N88-BASIC (NEC PC8801/9801)
- N82-BASIC (NEC PC8201/8201A)
- QBasicQBasicQBasic is an IDE and interpreter for a variant of the BASIC programming language which is based on QuickBASIC. Code entered into the IDE is compiled to an intermediate form, and this intermediate form is immediately interpreted on demand within the IDE. It can run under nearly all versions of DOS...
(PC-DOS/MS-DOS on IBM PC and compatibles) - QuickBASIC (PC-DOS/MS-DOS on IBM PC and compatibles)
- TRS-80 Level II BASIC (Tandy/Radio-Shack TRS-80TRS-80TRS-80 was Tandy Corporation's desktop microcomputer model line, sold through Tandy's Radio Shack stores in the late 1970s and early 1980s. The first units, ordered unseen, were delivered in November 1977, and rolled out to the stores the third week of December. The line won popularity with...
) - Visual BasicVisual BasicVisual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model...
(PC-DOS/MS-DOS/MS Windows on IBM PC and compatibles) - WordBasic (pre-VBAVisual Basic for ApplicationsVisual Basic for Applications is an implementation of Microsoft's event-driven programming language Visual Basic 6 and its associated integrated development environment , which are built into most Microsoft Office applications...
) (MS Windows) - HP2640 HP2647 Programmable Terminal with AGL graphics extensions
- FreeBASICFreeBASICFreeBASIC is a free/open source , 32-bit BASIC compiler for Microsoft Windows, protected-mode DOS , Linux, FreeBSD and Xbox....
- a free clone of the QuickBasic system. - GambasGambasGambas is the name of an object-oriented dialect of the BASIC programming language as well as the integrated development environment that accompanies it. Designed to run on Linux and other Unix-like computer operating systems, its name is a recursive acronym for Gambas Almost Means Basic...
- free BASIC implementation inspired by Visual Basic.
External links
- Microsoft BASIC Version Information – At the Old Software Information website
- Bill Gates’ Personal Easter Eggs in 8 Bit BASIC