CBASIC
| Industry | Software |
|---|---|
| Founded | January 1, 1976 |
| Founder | Gordon Eubanks |
| Fate | Acquired by Digital Research in 1981 |
| Headquarters | Vallejo, California , United States |
Key people | Gordon Eubanks |
| Products | CBASIC, CB80 |
CBASIC represents a compiled variant of the BASIC programming language tailored for the CP/M operating system. It was created by Gordon Eubanks between 1976 and 1977 as an improved successor to BASIC-E.
History
The origins of BASIC-E trace back to Eubanks' master's thesis, crafted in PL/M for Gary Kildall's CP/M system during their time at the Naval Postgraduate School in Monterey, California. BASIC-E itself was derived from a BASIC compiler developed by Kildall in 1974.
Since BASIC-E was developed with government funding, it entered the public domain, making it unavailable for commercial sale. IMSAI's marketing director, Seymour Rubinstein, commissioned Eubanks to produce a commercial adaptation for the IMSAI 8080 microcomputer. Eubanks developed CBASIC while serving aboard the USS George Washington in Vallejo, California. Ownership was shared with IMSAI, and Eubanks marketed CB80 through his firm, Compiler Systems, until its 1981 acquisition by Digital Research.
- CBASIC COMPILER VER 2.07
- CRUN VER 2.38 / COPYRIGHT 1981 COMPILER SYSTEMS INC.
Features
Both BASIC-E and the initial CBASIC releases translated source code into an intermediate p-code format, which required a distinct runtime interpreter to execute. The minimum memory requirement for CBASIC was 24 KB. Line numbers were optional except when used as jump targets. The language gained traction by supporting 14-digit binary-coded decimal (BCD) arithmetic, addressing the rounding inaccuracies found in MBASIC, especially critical for accounting software.
Enhancements introduced in CBASIC2 included:
- Support for integer variables
- Capability to chain programs sharing common variables
- Expanded set of predefined functions
- Integrated cross reference functionality
Reception
In 1980, InfoWorld described CBASIC as the "leading language for commercial CP/M applications," attributing this to widespread developer familiarity and royalty-free binary distribution rights granted to CBASIC license holders. Despite its acceptance, some limitations were noted, such as the necessity of a preprocessor, which complicated debugging, slower performance speeds, and issues stemming from incompatible updates.
Jerry Pournelle commended CBASIC's architecture and documentation in 1980 but observed that BASCOM generated faster executables without CBASIC’s more cumbersome edit-compile-run-debug workflow. By 1982, he acknowledged CB80’s advantages over BASCOM—such as dynamic array redimensioning and enhanced garbage collection—though he criticized the $2000 yearly fee imposed on software sales utilizing CB80 as excessive.
Pournelle further characterized CB80 in 1982 as a formidable alternative to languages like Pascal and PL/I, highlighting its support for local variables and Pascal-style functions, alongside a more accommodating licensing model. In 1983, he noted that after Digital Research acquired CBASIC, the original manual by Eubanks had initially declined in quality but acknowledged improvements made in subsequent editions.
External links
- Gordon Eubanks' personal account of BASIC-E and CBASIC, Computer World oral history transcript, November 2000
- BASIC-E Reference Manual (December 1976)
- CBASIC 2 Reference Manual (Table of contents p. 115) November 1981
- Additional description of CBASIC
- cbc – a converter from CBASIC to C
- Interpreter implemented in 6502 assembly
- Announcement of CBASIC 2.8 = CBASIC-86 1.00 Posting by Emmanuel Roche