Est. 1984 Beginner

DBase III

Ashton-Tate's 1984 rewrite of dBASE in C for 16-bit PCs. With its 1985 successor dBASE III PLUS, it fixed the dialect that later dBASE compilers and clones copied.

Created by Ashton-Tate (design team headed by C. Wayne Ratliff)

Paradigm Procedural, data-centric (xBase command language)
Typing Dynamic (memory variables); fixed field types in tables
First Appeared 1984
Latest Version dBASE III PLUS 1.1 (1986)

dBASE III is the database management system and programming language that Ashton-Tate shipped in June 1984 for the IBM PC and other 16-bit microcomputers. It replaced dBASE II, a product written in assembly language for 8-bit machines, with a new program written in C. Its 1985 successor, dBASE III PLUS, became the best-known version of dBASE. That dialect is the one later compilers and clones such as Clipper and FoxBASE+ implemented, and the one the umbrella term “xBase” usually refers to.

dBASE III was two things in one package. At the dot prompt it was an interactive tool for creating tables, entering records and running queries. In .PRG files the same English-like commands became a procedural programming language with variables, loops, conditionals and procedures. Many small-business, departmental and government applications of the mid-1980s were written in it.

A Note on the Year

The year 1984 is correct, but the exact month varies between sources:

DateEventSource
15 May 1984dBASE III announcedAshton-Tate press release, as catalogued by the Computer History Museum
June 1984First shippedAshton-Tate’s own press materials from 1985 and 1986 (“first shipped in June 1984”)
July 1984ShippedWikipedia’s Ashton-Tate article

This page follows Ashton-Tate’s own statement that dBASE III first shipped in June 1984.

History and Origins

From dBASE II to a 16-bit rewrite

dBASE II was based on Vulcan, a database program written by C. Wayne Ratliff. Ashton-Tate’s founders, George Tate and Hal Lashlee, began distributing it in 1980 and renamed it dBASE II. Ashton-Tate’s corporate background papers from 1985 say dBASE II first shipped in 1981 and call it the best-selling database program for 8-bit microcomputers.

When IBM’s PC made 16-bit machines the business standard, Ashton-Tate built a successor for them. A September 1984 Ashton-Tate biography says Ratliff joined the company in August 1983 and “headed up the design team for dBASE III”. A 1985 backgrounder calls him “one of the lead developers”. In the launch materials Ratliff described the change from dBASE II this way:

Although we have kept all the features of dBASE II that make it so popular, dBASE III was written in C language from the ground up to have greater capabilities, storage, speed, power and ease of use.

Ashton-Tate also said that because the program was written in C it “can be easily converted to run on computers using the UNIX operating system”.

Launch

The announcement press release is dated 15 May 1984. A product sheet from later that year gives the suggested retail price as $695 and lists the target machines: the IBM PC, XT, AT and PC 3270, the AT&T 6300, and IBM compatibles. Versions for Texas Instruments’ Professional computers, Tandy’s business computers and ACT’s Apricot were described as planned. The minimum configuration was 256K of RAM, two 360K floppy drives (or a hard disk and one floppy) and PC-DOS 2.0 or 3.0.

The same release launched the dBASE Assistant, a menu-driven mode that guided new users through common tasks and could be turned off once they knew the commands. It also launched context-sensitive help on a single key. Six days after the announcement, a 21 May 1984 release said Ashton-Tate was restructuring its whole domestic distribution network, a move that followed the introduction of Framework and dBASE III “within the last two months”.

Ports and updates

dBASE III was more portable than dBASE II, and Ashton-Tate’s press releases record a series of new platforms:

  • November 1984: updates that fully supported the IBM PC/AT and the AT&T 6300. Wikipedia’s Ashton-Tate article identifies a November 1984 bug-fix release as version 1.1
  • 26 March 1985: dBASE III for the AT&T UNIX PC and for the Data General/One portable
  • 5 August 1985: shipments for the TI Professional Computer family, with an upgrade kit for owners of TI’s MS-DOS dBASE II

A mid-1985 corporate backgrounder said dBASE III and Framework had been translated into seven languages.

Developer’s Release

Applications written in dBASE needed dBASE to run, which was awkward for anyone selling them. In November 1984 Ashton-Tate announced dBASE III RunTime for third-party developers. On 1 July 1985 it introduced the Developer’s Release of dBASE III and dBRUN, an execute-only runtime, together with a program for value-added remarketers. In October 1985 dBRUN III was cut from $195 to $50 per unit, sold in lots of at least five.

Nantucket’s Clipper compiler took a different approach. It compiled dBASE III programs into stand-alone DOS executables that needed no dBASE licence at all. It shipped in the spring of 1985, and Nantucket advertised it as “the first true compiler for dBASE III”.

dBASE III PLUS

Ashton-Tate introduced dBASE III PLUS on 20 November 1985 at a news conference at COMDEX/Fall ‘85 in Las Vegas. The press release said it would “succeed dBASE III, the industry’s best-selling 16-bit microcomputer database management software” and that dBASE II and III together had “more than 550,000 users worldwide”. The price stayed at $695. Registered dBASE III owners could upgrade for $99 during the first 90 days, and anyone who had bought dBASE III after 1 October 1985 or owned the Developer’s Release got the upgrade free. Shipments began in January 1986.

III PLUS added three things:

  • The Assistant was rebuilt with pull-down menus modelled on Framework’s. From those menus, without programming, users could reach an Advanced Query System, a View facility that combined several tables for reporting, a Screen Painter and an Applications Generator. The Assistant showed each dot-prompt command as it was built, so users could learn the language from the menus
  • Built-in network support. Each copy could run on a PC-DOS 3.1-compatible LAN, with file and record locking, eight levels of password protection and encryption of protected fields. A LAN Pack at $995 added three more network users
  • The Developer’s Release language changes were folded in. Ashton-Tate counted “more than 50 enhancements to the dBASE programming language”, including eight new commands, 32 additional functions, a command-history file for debugging, assembly-language calls, error and Escape-key handling (ON ERROR, ON ESCAPE) and in-line comments

Ashton-Tate also claimed that dBASE III PLUS “sorts up to two times faster and indexes up to 10 times faster than dBASE III”. The release did not say what data, machines or operations were measured, or how the comparison was run. The figures are a vendor claim, not an independent benchmark.

The launch did not go smoothly. On 14 January 1986 Ashton-Tate told distributors and dealers that, through a disk manufacturing error, a unique access code had not been recorded on initial copies with serial numbers 2500001 to 2533960. It estimated that about 24,000 affected units were in the sales channel and offered exchanges. A version 1.1 followed during 1986. A November 1986 press release refers to “versions 1.1 of dBASE III PLUS and dBASE III PLUS LAN Pack”.

The Language

dBASE III programs are sequences of commands of the kind a user could also type at the dot prompt. The language was designed for working with tables, so opening a file, moving a record pointer and replacing a field are statements of the language itself, not library calls.

Data model

ElementdBASE III / III PLUS
Table file.DBF, with memo text in a separate .DBT file
Index file.NDX, built with INDEX ON <expression> TO <file>
Field typesCharacter, Numeric, Date, Logical, Memo
Fields per record128
Open tables10, one per work area, chosen with SELECT
Program files.PRG; procedure files hold several PROCEDURE blocks

Ashton-Tate’s figures for the maximum number of records changed. The May 1984 announcement said “over two billion records per file (limited by user’s computer system)”. The November 1985 and April 1986 materials for III PLUS say one billion. In practice the limit was the size of the disk.

Hello, World

The ? command evaluates an expression and prints it on a new line:

1
? "Hello, World!"

A small program

This program lists the customers in one state. SKIP moves the record pointer and EOF() reports the end of the table:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
* CALIST.PRG - list customers in one state
SET TALK OFF
USE CUSTOMER
STORE "CA" TO mState
DO WHILE .NOT. EOF()
   IF STATE = mState
      ? LASTNAME, FIRSTNAME, CITY
   ENDIF
   SKIP
ENDDO
USE
RETURN

The control structures are IF ... ELSE ... ENDIF, DO WHILE ... ENDDO (with LOOP and EXIT) and DO CASE ... CASE ... OTHERWISE ... ENDCASE. Logical values are written .T. and .F., and the operators are .AND., .OR. and .NOT..

Procedures and parameters

A program or procedure is run with DO. Arguments are passed with WITH and received with PARAMETERS. A memory variable passed this way is passed by reference, so the called procedure can change it. dBASE III PLUS allows one procedure file open at a time:

1
2
3
4
5
6
* MAIN.PRG
SET PROCEDURE TO UTILS
STORE 0 TO mTotal
DO AddTax WITH 100, mTotal
? mTotal
CLOSE PROCEDURE
1
2
3
4
5
* UTILS.PRG
PROCEDURE AddTax
PARAMETERS nAmount, nResult
nResult = nAmount * 1.08
RETURN

Variables are created by assignment or STORE and take the type of their value. PUBLIC makes a variable global. PRIVATE hides the caller’s variable of the same name from the current routine and anything it calls. This is dynamic scoping, not lexical scoping.

Work areas and relations

Each of the ten work areas holds one open table with its own record pointer. SET RELATION links a parent table to an indexed child table, so moving through the parent moves the child to the matching record:

1
2
3
4
5
6
SELECT 2
USE ORDERS INDEX ORDCUST
SELECT 1
USE CUSTOMER
SET RELATION TO CUSTNO INTO ORDERS
LIST LASTNAME, ORDERS->AMOUNT

Macro substitution

The & operator replaces a character variable’s name with its contents before the command runs. dBASE programs used it to choose files, fields and even commands at run time:

1
2
STORE "CUSTOMER" TO mFile
USE &mFile

The language had no user-defined functions. Reusable logic was written as procedures called with DO. User-defined functions arrived in dBASE IV and in Clipper.

Copy Protection

dBASE III and Framework were copy-protected. Wikipedia’s article on the Prolok protection system says Ashton-Tate used it on PC releases of dBASE III and Framework 1.0. Ashton-Tate also pursued unauthorized copies directly: in December 1985 it announced that it had worked with the FBI in a piracy investigation involving dBASE III and Framework. On 19 August 1986 it announced the removal of copy protection from its products “for all customers”. An April 1987 release confirms that dBASE III PLUS was no longer copy-protected by then.

The Fox Lawsuit and the Status of the Language

dBASE III PLUS was widely cloned. On 18 November 1988 Ashton-Tate sued Fox Software and The Santa Cruz Operation in the U.S. District Court for the Central District of California. It alleged that FoxBASE+ infringed its copyrights in dBASE II, dBASE III and dBASE III PLUS.

On 11 December 1990 Judge Terry Hatter invalidated Ashton-Tate’s dBASE copyrights. He ruled that the company had not told the Copyright Office that dBASE was derived from JPLDIS, a public-domain program from the Jet Propulsion Laboratory. That ruling is often quoted as the end of the story, but it was not. In April 1991, according to UPI and Computer Business Review, Hatter amended his order and rescinded it. The new order neither upheld nor rejected the copyrights, and the case continued.

The case ended with Borland’s purchase of Ashton-Tate. On 17 October 1991 Borland and Ashton-Tate consented to a proposed Final Judgment with the U.S. Department of Justice. Under it, Borland was “enjoined from initiating any claim that asserts copyright infringement in the command names, menu items, menu command hierarchies, command languages, programming languages, and file structures used in Ashton-Tate’s dBASE family of products.” Borland was also required to dismiss the suit against Fox once Fox dropped its counterclaims. From then on, the dBASE language could be implemented by anyone.

Evolution

ReleaseDateNotes
dBASE III 1.0June 1984Written in C; Assistant; 10 work areas
dBASE III updates (1.1)November 1984IBM PC/AT and AT&T 6300 support; bug fixes
dBASE III Developer’s ReleaseAnnounced July 1985Developer-oriented features later folded into III PLUS; dBRUN runtime
dBASE III PLUS 1.0Introduced November 1985, shipped January 1986Pull-down Assistant, LAN support, over 50 language enhancements
dBASE III PLUS 1.11986Referenced in Ashton-Tate’s November 1986 release
dBASE IVShipped 24 October 1988Described by Ashton-Tate as “the successor to dBASE III PLUS”

Ashton-Tate kept selling dBASE III PLUS after dBASE IV appeared. A November 1989 press release reported continuing channel demand for dBASE III and III PLUS. The dBASE DIRECT connectivity products that shipped in 1990, linking PCs to IBM 370 mainframes (via 3270) and to the AS/400, still targeted III PLUS rather than dBASE IV.

Current Relevance

Nobody develops new software in dBASE III itself, but much of its design is still in use. The .DBF table format it used is still read by GIS tools, spreadsheets and data-conversion utilities. Open-source compilers such as Harbour implement the Clipper language, which began as a compiler for dBASE III programs and keeps its commands. dBASE III PLUS is the usual baseline for the xBase family: code written in it is the most likely to run unchanged on the clones and compilers that followed.

Why It Matters

dBASE III shows how a programming language could reach people who did not think of themselves as programmers. Its users learned commands one at a time at the dot prompt, or watched the Assistant build them, and could then save the same commands in a file and run them as a program. Accountants, office managers and consultants used that path to write the custom business software of the early PC era.

Its commercial history mattered almost as much. Its success spawned compilers and clones, and Ashton-Tate’s attempt to stop one of them by copyright did not succeed. The 1991 consent decree meant the most widely used database language on the PC could no longer be claimed by a single company. The name “xBase” for the language family comes from that period.

Sources and Caveats

Most dates, prices and quotations on this page come from Ashton-Tate press releases and backgrounders from 1984 to 1990, preserved by the Computer History Museum in its Ashton-Tate corporate history collection and as individual scanned documents. The material on the lawsuit comes from the U.S. Department of Justice’s Competitive Impact Statement of 22 October 1991 and from 1991 reports by UPI and Computer Business Review. Language details are taken from the help file on an archived dBASE III PLUS 1.0 disk set. They describe III PLUS, which extended the original 1984 command set.

Some points could not be confirmed:

  • The exact ship month: Ashton-Tate says June 1984, Wikipedia says July
  • The version number of the November 1984 update: Ashton-Tate’s press releases call it an update, and “1.1” comes from Wikipedia
  • The exact release date of dBASE III PLUS 1.1
  • Wikipedia’s dBase article says, without a citation, that dBASE III was produced by machine-translating the assembly-language dBASE II into C. That contradicts Ratliff’s 1984 statement that it was “written in C language from the ground up”, and this page does not repeat it
  • The Prolok attribution for dBASE III’s copy protection rests on Wikipedia, not on an Ashton-Tate document

Timeline

1984
Ashton-Tate announces dBASE III in a press release dated 15 May, as a database management system for 16-bit and larger computers written in C
1984
dBASE III ships in June at a suggested retail price of $695, according to Ashton-Tate's own later press releases
1984
In November Ashton-Tate releases dBASE III updates supporting the IBM PC/AT and AT&T 6300, and announces dBASE III RunTime for third-party application developers
1985
On 26 March Ashton-Tate announces dBASE III for the AT&T UNIX PC and the Data General/One portable
1985
On 1 July Ashton-Tate introduces the dBASE III Developer's Release and the dBRUN execute-only runtime, alongside a program for value-added remarketers
1985
dBASE III PLUS is introduced on 20 November at COMDEX/Fall '85 in Las Vegas, with the Assistant pull-down menus and built-in local area network support
1986
Ashton-Tate announces on 8 January that dBASE III PLUS has begun shipping
1986
On 19 August Ashton-Tate announces it is removing copy protection from all of its products for all customers
1988
Ashton-Tate begins shipping dBASE IV, the successor to dBASE III PLUS, on 24 October. On 18 November it sues Fox Software and The Santa Cruz Operation, alleging that FoxBASE+ infringes its copyrights in dBASE II, dBASE III and dBASE III PLUS
1991
On 17 October, as a condition of Borland's purchase of Ashton-Tate, Borland agrees to a proposed Final Judgment barring it from claiming copyright in the dBASE command and programming languages and directing it to dismiss the Fox suit

Notable Uses & Legacy

Dun's SalesSearch

A sales-tracking and account-management application that Ashton-Tate built in dBASE III PLUS for Dun's Marketing Services, a Dun & Bradstreet company. It combined Dun's market data with a microcomputer database and was announced in May 1987 at $695

U.S. Air Force Institute of Technology

A September 1988 master's thesis at AFIT's School of Systems and Logistics built an office-automation database in dBase III Plus for the Department of Logistics Management, intended to replace manual paperwork and run on the office's personal computers

U.S. Armed Forces (via Zenith Data Systems)

In March 1986 Ashton-Tate announced a licensing agreement under which Zenith Data Systems was expected to supply the U.S. Armed Forces with about 90,000 units of dBASE III, MultiMate 3.3 and dBASE II over three years, worth more than $15 million. The unit and dollar figures are the companies' expectations at signing

Vertical applications distributed with dBRUN

Developers wrote applications in dBASE III and shipped them to customers with dBRUN, an execute-only runtime. In October 1985 Ashton-Tate cut the price of dBRUN III from $195 to $50 per unit, with a minimum order of five units

Language Influence

Influenced By

dBASE II

Influenced

dBASE IV Clipper FoxBASE+

Running Today

Run examples using the official Docker image:

docker pull
Last updated: