BASIC-E
| Company type | Private |
|---|---|
| Industry | Software |
| Founded | 1976 |
| Founder | Gordon Eubanks |
| Fate | Acquired by Digital Research in 1981 |
| Headquarters | Vallejo, California , United States |
| Products | CBASIC |
| Owner | Gordon Eubanks, IMSAI (originally) |
| Parent | Digital Research (after 1981) |
CBASIC represents a compiled form of the BASIC programming language, created specifically for the CP/M operating system by Gordon Eubanks during 1976–1977. It serves as an improved version of BASIC-E.
History
BASIC-E was initially developed as part of Eubanks' master's thesis and was written in PL/M for the CP/M operating system, which was designed by Gary Kildall, while both were affiliated with the Naval Postgraduate School in Monterey, California. This language built upon a BASIC compiler that Kildall had produced in 1974.
Because BASIC-E was funded publicly, it entered the public domain, preventing exclusive commercial rights. Consequently, IMSAI's marketing director, Seymour Rubinstein, commissioned Eubanks to create a commercial adaptation tailored for the IMSAI 8080 microcomputer. Eubanks developed CBASIC during his naval tenure on the submarine USS George Washington in Vallejo, California. Ownership was shared between Eubanks and IMSAI, and he marketed CB80 through his firm, Compiler Systems, until its purchase by Digital Research in 1981.
- CBASIC COMPILER VER 2.07
- CRUN VER 2.38 / COPYRIGHT 1981 COMPILER SYSTEMS INC.
Features
Both BASIC-E and the initial versions of CBASIC translated source code into an intermediate p-code format, which was then run by a distinct run-time interpreter. The minimum memory requirement for CBASIC was 24 KB. Line numbers were not mandatory unless utilized as jump targets. Its popularity stemmed from implementing 14-digit binary-coded decimal (BCD) arithmetic, which resolved rounding inaccuracies found in MBASIC, especially significant for accounting purposes.
The release of CBASIC2 introduced enhancements such as:
- Support for integer variables
- Ability to chain programs while sharing variables
- Expanded set of built-in functions
- Inclusion of a Cross reference feature
Reception
In 1980, InfoWorld identified CBASIC as the "primary language for commercial CP/M applications," attributing this status to widespread developer familiarity and the advantage of royalty-free distribution of binaries to licensed users. Despite its success, certain limitations were noted, including reliance on a preprocessor that complicated debugging procedures, slower execution speeds, and some incompatible modifications.
Jerry Pournelle praised CBASIC’s architecture and thorough documentation in 1980 but observed that BASCOM generated faster executable code without requiring CBASIC’s more involved edit-compile-run-debug process. By 1982, he recognized improvements in CB80 over BASCOM such as support for redimensionable arrays and more effective garbage collection, though he criticized the $2000 annual licensing fee for software sales as prohibitively expensive.
Pournelle further acknowledged in 1982 that CB80 stood as a formidable alternative to languages like Pascal and PL/I, highlighting its local variable support and Pascal-style functions, while also welcoming its more lenient licensing conditions. By 1983, he reported that after acquiring Compiler Systems, Digital Research initially downgraded Eubanks’ CBASIC manual but subsequently released a significantly improved edition.
External links
- Gordon Eubanks’ personal account of BASIC-E and CBASIC from a Computer World oral history interview conducted in November 2000
- BASIC-E Reference Manual dated December 1976
- CBASIC 2 Reference Manual (See Table of contents on p. 115), November 1981
- Additional description of CBASIC
- cbc – converter from CBASIC to C
- Interpreter implemented in 6502 assembly language
- CBASIC 2.8 equivalent to CBASIC-86 1.00 post by Emmanuel Roche