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.

Five 8 KB ROM DIP chips and an empty 8 KB ROM expansion socket, on an IBM PC motherboard. Four chips hold Cassette BASIC, and one holds the BIOS.


IBM licensed Microsoft BASIC for the PC despite already having its own version for the company's mainframes. Don Estridge said, "Microsoft BASIC had hundreds of thousands of users around the world. How are you going to argue with that?"[1]

IBM Cassette BASIC

IBM Cassette BASIC
IBM Cassette BASIC
DeveloperMicrosoft (for IBM)
First appeared1981

IBM Cassette BASIC came in 32 kilobytes (KB) of read-only memory (ROM), separate from the 8 KB BIOS ROM of the original IBM PC, and did not require an operating system to run. Cassette BASIC provided the default user interface invoked by the BIOS through INT 18h if there was no floppy disk drive installed, or if the boot code did not find a bootable floppy disk at power up. The name Cassette BASIC came from its use of cassette tapes rather than floppy disks to store programs and data. Cassette BASIC was built into the ROMs of the original PC and XT, and early models in the PS/2 line. It only supported loading and saving programs to the IBM cassette tape interface, which was unavailable on models after the original Model 5150. The entry-level version of the 5150 came with just 16 KB of random-access memory (RAM), which was sufficient to run Cassette BASIC. However, Cassette BASIC was rarely used because few PCs were sold without a disk drive, and most were sold with PC DOS and sufficient RAM to at least run Disk BASIC—many could run Advanced BASIC as well. There were three versions of Cassette BASIC: C1.00 (found on the early IBM PCs with 16k-64k motherboards), C1.10 (found on all later IBM PCs, XTs, ATs, and PS/2s), and C1.20 (found on the PCjr).


DeveloperMicrosoft (for IBM)
First appeared1981
Influenced by
IBM Cassette BASIC

IBM Disk BASIC (BASIC.COM) was included in the original IBM PC DOS. Because it uses the 32 KB Cassette BASIC ROM,[2] BASIC.COM did not run on even highly compatible PC clones such as the Compaq Portable.[3] The name Disk BASIC came from its use of floppy disks as well as cassette tapes to store programs and data. Disk-based code corrected errata in the ROM-resident code and added floppy disk and serial port support.

Disk BASIC could be identified by its use of the letter D preceding the version number. It added disk support and some features lacking in Cassette BASIC, but did not include the extended sound/graphics functions of BASICA. The primary purpose of Disk BASIC was as a "lite" version for IBM PCs with only 48K of memory: BASIC.COM would then have about 23K free for user code, whereas BASICA would only have about 17K. By 1986, all new PCs shipped with at least 256k and DOS versions after 3.00 reduced Disk BASIC to only a small stub that called BASICA.COM for compatibility with batch files. Even with all this excess RAM, BASIC would still only allocate and manage just under 61K for user programs (whether it was Cassette BASIC, BASIC.COM or BASICA).

IBM Advanced BASIC

DeveloperMicrosoft (for IBM)
First appeared1981
PlatformIBM Personal Computer
Influenced by

IBM Advanced BASIC (BASICA.COM) was also included in the original IBM PC DOS, and required the ROM-resident code of Cassette BASIC.[2] It added functions such as diskette file access, storing programs on disk, monophonic sound using the PC's built-in speaker, graphics functions to set and clear pixels, draw lines and circles, and set colors, and event handling for communications and joystick presses. BASICA would not run on non-IBM computers (even so-called "100% compatible" machines) or later IBM models, since those lack the needed ROM BASIC.

BASICA versions were the same as their respective DOS, beginning with v1.00 and ending with v3.30. The early versions of BASICA did not support subdirectories and some graphics commands functioned slightly differently. As an example, if the LINE statement was used to draw lines that trailed off-screen, BASIC would merely intersect them with the nearest adjacent line while in BASIC 2.x and up, they went off the screen and did not intersect. The PAINT command in BASIC 1.x begins filling at the coordinate specified and expands outward in alternating up and down directions while in BASIC 2.x it fills everything below the starting coordinate and then after finishing, everything above it. BASIC 1.x's PAINT command also makes use of the system stack for storage and when filling in complex areas, it was possible to produce an OVERFLOW error. To remedy this, the CLEAR statement can be used to expand BASIC's stack (128 bytes is the default size). BASIC 2.x does not use the stack when PAINTing and thus is free of this problem.

Compaq BASIC 1.13 was the first standalone BASIC for the PC (that did not require Cassette BASIC to run) as well as the only version of BASIC besides IBM BASICA 1.00 and 1.10 to use FCBs and include the original LINE statement with intersecting lines (the PAINT statement in Compaq BASIC 1.13 worked like in all later versions of BASICA/GW-BASIC, using the new fill algorithm and no stack).

Early versions of PC DOS included several sample BASIC programs demonstrating the capabilities of the PC, including the BASICA game DONKEY.BAS.

GW-BASIC is identical to BASICA, with the exception of including the Cassette BASIC code in the program, thus allowing it to run on non-IBM computers and later IBM models that lack Cassette BASIC in ROM.

IBM PCjr Cartridge BASIC

A ROM cartridge version of BASIC was only available on the IBM PCjr (shipped 1984) and supported the additional graphics modes and sound capabilities possible on that platform.[4] It is a superset of advanced BASIC.[5] Cartridge BASIC can only operate within the first 128k of memory on the PCjr and will not work with expansion RAM (e.g. the DEF SEG function cannot be used to point to memory segments above &H1FF0)

Cartridge BASIC is activated by typing BASICA at the DOS prompt. Conversely, IBM BASICA versions 2.1 and up will refuse to run if it detects a PCjr (but can be patched to work around this).


Cassette BASIC loads when a PC or PCjr is booted without a bootable disk or cartridge. Disk BASIC and Advanced BASIC load when their command name (BASIC and BASICA respectively) is typed at a DOS command prompt (except PCjr, which activates Cartridge BASIC instead), with some optional parameters to control allocation of memory. When loaded, a sign-on identification message displays the program version number, and a full-screen text editor starts (see images, right). The function keys are assigned common commands, which display at the bottom of the screen. Commands may be typed in to load or save programs, and expressions can be typed in and executed in direct (immediate) mode. If a line of input starts with a number, the language system stores the following line of text as part of program source, allowing a programmer to enter in an entire program line by line, entering line numbers before each statement. When listed on screen, lines are displayed in order of increasing line number. Changes can be made to a displayed line of program source code by moving the cursor to the line with the cursor keys, and typing over the on-screen text. Program source is stored internally in a tokenized form, where keywords are replaced with a single byte token, to save space and execution time. Programs may be saved in compact tokenized form, or optionally saved as DOS text ASCII files that can be viewed and edited with other programs. Like most other DOS applications, IBM BASIC is a text-mode program and has no features for windows, icons, mouse support, or cut and paste editing.


GW-BASIC, launched in 1983, was a disk-based Microsoft product distributed with non-IBM MS-DOS computers, and supported all the graphics modes and features of BASICA on computers that did not have the IBM Cassette BASIC.

The successor to BASICA for MS-DOS and PC DOS versions was QBasic, launched in 1991, which was a stripped-down version of the Microsoft QuickBASIC compiler: QBasic was an interpreter and could not compile source files while QuickBASIC could compile and save the programs in the .EXE executable file format.


  1. ^ Curran, Lawrence J., Shuford, Richard S. (November 1983). "IBM's Estridge". BYTE. pp. 88–97. Retrieved 19 March 2016.CS1 maint: Multiple names: authors list (link)
  2. ^ a b Williams, Gregg (January 1982). "A Closer Look at the IBM Personal Computer". BYTE. p. 36. Retrieved 19 October 2013.
  3. ^ Dahmke, Mark (January 1983). "The Compaq Portable". BYTE. pp. 30–36. Retrieved 27 July 2013.
  4. ^ Readers' Feedback: IBM BASIC Versions, Compute! Magazine, No. 78, November 1986, p. 8, retrieved December 23, 2011
  5. ^ IBM. PCjr Cartridges Announcement Letter. 1983-11-01 ([1]).

External links

Andrew Fluegelman

Andrew Cardozo Fluegelman (November 27, 1943 – c. July 6, 1985) was a publisher, photographer, programmer and attorney best known as a pioneer of what is now known as the shareware business model for software marketing. He was also the founding editor of both PC World and Macworld and the leader of the 1970s New Games movement, which advocated the development of noncompetitive games.

FASTER (software)

FASTER (First Automated Teleprocessing Environment Reponder) was a transaction processor that ran on IBM mainframe systems under OS/MFT.FASTER was available from IBM and designed for rapid, low to medium volume online processing. This process was entirely interactive (screen-oriented using 2260 display terminals).

The 'official' version of FASTER was single thread only and was a forerunner of MTCS before it was released.

IBM Basic Programming Support

IBM Basic Programming Support/360 (BPS), originally called Special Support, was a set of standalone programs for System/360 mainframes with a minimum of 8 KiB of memory.

BPS was developed by IBM's General Products Division in Endicott, New York. The package included "assemblers, IOCS, compilers, sorts, and utilities but no governing control program." BPS components were introduced in a series of product announcements between 1964 and 1965.BPS came in two versions — a strictly card system and a tape based system which, contrary to the stated goals, kept a small supervisor permanently resident.Programming languages available were Assembler, RPG, and FORTRAN IV (subset). Tape FORTRAN required 16 KiB of memory. There were also two versions of the BPS assembler, with the tape version having enhanced capabilities.

BPS also had a "disk" counterpart called BOS. It also required 8 KiB of memory and supported disks such as the IBM 2311.

The group responsible for BPS/BOS went on to develop DOS/360 and TOS/360 as a supposed "interim" solution when it became evident that OS/360 would be too large to run on 16 KiB systems.

IBM Basic assembly language and successors

Basic Assembly Language (BAL) is the commonly used term for a low-level programming language used on IBM System/360 and successor mainframes. Originally, "Basic Assembly Language" applied only to an extremely restricted dialect designed to run under control of IBM Basic Programming Support (BPS/360) on systems with only 8 KB of main memory, and only a card reader, a card punch, and a printer for input/output — thus the word "Basic". However, the full name and the initialism "BAL" almost immediately attached themselves in popular use to all assembly-language dialects on the System/360 and its descendants. BAL for BPS/360 was introduced with the System/360 in 1964.

Assemblers on other System/360 operating systems through System/370, System/390, and System z, as well as the UNIVAC Series 90 mainframes made by Sperry Corporation, and the BS2000 Mainframes currently made by Fujitsu, inherited and extended its syntax. The latest derived language is known as the IBM High-Level Assembler (HLASM). Programmers utilizing this family of assemblers also refer to them as ALC, (for Assembly Language Coding), or simply "assembler".

BAL is also the mnemonic of the "Branch And Link" instruction.

IBM High Level Assembler

High Level Assembler or HLASM is IBM's current assembler product for its z/OS, z/VSE, z/VM and z/TPF operating systems on z/Architecture mainframe computers. There is also a version that runs on Linux, primarily intended for systems running on a z/Architecture system (this environment is sometimes referred to as z/Linux).

HLASM was introduced in 1992 replacing IBM's Assembler H Version 2.Despite the name, HLASM on its own does not have many of the features normally associated with a high-level assembler, but does offer a number of improvements over Assembler H and Assembler(XF), such as labeled and dependent USINGs, more complete cross-reference information, and additional macro language capabilities such as the ability to write user-defined functions.

The High Level Assembler Toolkit is a separately priced accompaniment to the High Level Assembler. The toolkit contains:

A set of structured programming macros —






A disassembler.

A "Program Understanding Tool" (re-engineering aid).

A Source XREF utility (cross-reference facility).

Interactive Debug Facility.

Enhanced SuperC (source comparison tool).


MTCS (Minimum Teleprocessing Control System) was a transaction processor that ran on IBM mainframe systems under OS/VS1.MTCS was available from IBM and designed for rapid, low to medium volume online processing. This process was entirely interactive (screen-oriented using 3270 display terminals).

The 'official' version of MTCS was single thread only and was a forerunner of CICS before it was released.

An unofficial and multi-threaded version of MTCS was developed by Littlewoods Pools, UK at the same time as a multi-threaded "MTCS bridge" (middleware MTCS simulator) became available for running MTCS transactions directly under CICS. This version was also used by other customers including Granada Productions under a license agreement.

IBM Personal Computer

The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981. It was created by a team of engineers and designers under the direction of Don Estridge of the IBM Entry Systems Division in Boca Raton, Florida.

The generic term "personal computer" ("PC") was in use years before 1981, applied as early as 1972 to the Xerox PARC's Alto, but because of the success of the IBM Personal Computer, the term "PC" came to also mean more specifically a desktop microcomputer compatible with IBM's Personal Computer branded products. Since the machine was based on open architecture, within a short time of its introduction, third-party suppliers of peripheral devices, expansion cards, and software proliferated; the influence of the IBM PC on the personal computer market was substantial in standardizing a platform for personal computers. "IBM compatible" became an important criterion for sales growth; after the 1980s, only the Apple Macintosh family kept a significant share of the microcomputer market without compatibility with the IBM personal computer.

IBM Personal Computer XT

The IBM Personal Computer XT, often shortened to the IBM XT, PC XT, or simply XT, is a version of the IBM PC with a built-in hard drive. It was released as IBM Machine Type number 5160 on March 8, 1983. Apart from the hard drive, it was essentially the same as the original PC, with only minor improvements. The XT was mainly intended as an enhanced IBM PC for business users. Later floppy-only models would effectively replace the original model 5150 PC. A corresponding 3270 PC featuring 3270 terminal emulation was released later in October 1983. XT stands for eXtended Technology.

IBM cassette tape

On the original IBM Personal Computer, and the IBM PCjr, an interface was provided to allow the use of a compact cassette tape recorder to load and save data and programs. In fact until the PC was discontinued in 1987, there was a Model 104 offered that was a 5150 from IBM without a floppy disk drive.It was common for users of home computers of the time, such as the Apple II, Commodore 64 and BBC Micro, to use cassette tapes for storage if they could not afford a floppy disk drive, and in many cases there was a wide range of commercial software available on tape. This, however, was not the case with the IBM PC – very few were shipped without at least one floppy disk drive, and apart from one diagnostic tape available from IBM, there seems never to have been software sold on tape. An IBM PC with just an external cassette recorder for storage could only use the built-in ROM BASIC as its operating system, which supported cassette operations. IBM PC DOS had no support for cassette tape.

The IBM PCjr was also seldom sold without a floppy disk drive, but it also had two ROM cartridge slots on the front of the unit – a much more convenient and reliable option for loading software.

No market developed for commercial product distribution on cassette tape and the cassette interface was dropped on the subsequent IBM XT.

Index of DOS games (I)

This is an index of DOS games.

This list has been split into multiple pages. Please use the Table of Contents to browse it.

Intel 8008

The Intel 8008 ("eight-thousand-eight" or "eighty-oh-eight") is an early byte-oriented microprocessor designed and manufactured by Intel and introduced in April 1972. It is an 8-bit CPU with an external 14-bit address bus that could address 16 KB of memory. Originally known as the 1201, the chip was commissioned by Computer Terminal Corporation (CTC) to implement an instruction set of their design for their Datapoint 2200 programmable terminal. As the chip was delayed and did not meet CTC's performance goals, the 2200 ended up using CTC's own TTL-based CPU instead. An agreement permitted Intel to market the chip to other customers after Seiko expressed an interest in using it for a calculator.

List of Softdisk games

Softdisk was a software and Internet company based in Shreveport, Louisiana. Founded in 1981, its original products were disk magazines (which they termed "magazettes", for "magazine on diskette"). It was affiliated and partly owned by paper magazine Softalk at founding, but survived its demise.

List of programming languages

The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in alphabetical order. Dialects of BASIC, esoteric programming languages, and markup languages are not included.

Music Macro Language

Music Macro Language (MML) is a music description language used in sequencing music on computer and video game systems.


PL360 (or PL/360) is a programming language designed by Niklaus Wirth and written by Niklaus Wirth, Joseph W. Wells, Jr., and Edwin Satterthwaite, Jr. for the IBM System/360 computer at Stanford University. A description of PL360 was published in early 1968, although the implementation was probably completed before Wirth left Stanford in 1967.

Pivot Animator

Pivot Animator (formerly Pivot Stickfigure Animator and usually shortened to Pivot) is a freeware application that allows users to create stick-figure and sprite animations, and save them in the animated GIF format for use on web pages and the AVI format (in Pivot Animator 3 and later).Pivot provides a simple, easy to use interface with a few features. It uses fixed length 'sticks' to ensure size consistency during animation.


Sabermetrics is the empirical analysis of baseball, especially baseball statistics that measure in-game activity.

Sabermetricians collect and summarize the relevant data from this in-game activity to answer specific questions. The term is derived from the acronym SABR, which stands for the Society for American Baseball Research, founded in 1971. The term sabermetrics was coined by Bill James, who is one of its pioneers and is often considered its most prominent advocate and public face.

Dialects of the BASIC programming language (list)
With object extensions
For mobile devices
Third-party VB-like

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.