CBASIC
![]() The workflow of compiler and interpreter | |
Developer | Gordon Eubanks |
---|---|
First appeared | 1976; 48 years ago (1976) |
Implementation language | PL/M |
OS | CP/M |
CBASIC is a compiled version of the BASIC programming language written for the CP/M operating system by Gordon Eubanks in 1976–1977. It is an enhanced version of BASIC-E.[1][2]
History
BASIC-E was Eubank's master's thesis project.[1][2] It was developed in PL/M by Eubanks for Gary Kildall's new CP/M operating system while both men were at the Naval Postgraduate School in Monterey, California.[1][2] BASIC-E was based on a BASIC compiler originally written by Gary Kildall in 1974.[1][2]
Because it was developed at public expense, BASIC-E is in the public domain and cannot be marketed exclusively.[1][2][3] Seymour Rubinstein, the marketing director of IMSAI contacted Eubanks and asked him to create a saleable version under contract for the IMSAI 8080 microcomputer.[4] Eubanks developed CBASIC in his spare time while he was still a naval officer stationed on the submarine USS George Washington at Vallejo, California. He retained joint ownership of the program with IMSAI, and sold the program through his own company, Compiler Systems, until it was acquired by Digital Research[1][2] in 1981.
- CBASIC COMPILER VER 2.07
- CRUN VER 2.38 / COPYRIGHT 1981 COMPILER SYSTEMS INC.
Features
BASIC-E and early versions of CBASIC compiled source code into an intermediate p-code file, which was then executed by a separate run-time interpreter program. CBASIC could execute in a minimum of 24 KB of memory. Line numbers in the program source were optional, unless needed as a label for a program jump. CBASIC proved very popular because it incorporated 14-digit binary-coded decimal (BCD) math which eliminated MBASIC's rounding errors that were sometimes troublesome for accounting.
CBASIC2 adds the following features:
- Integer variables
- Chaining with common variables
- Additional pre-defined functions
- Cross reference capability
Reception
InfoWorld in 1980 described CBASIC as the "primary language for the development of commercial CP/M applications", because of developers' widespread familiarity with BASIC and ability to distribute royalty-free binaries without source code to CBASIC owners. The magazine stated that the language had become popular "despite serious drawbacks", including the required preprocessor for interpreted source code making debugging difficult, slow speed, and incompatible changes.[5] Jerry Pournelle said in May 1983 that Digital Research had "practically ruin[ed]" Eubanks' CBASIC manual after acquiring his company, but that the new edition was much better.[6]
References
- ^ a b c d e f Shustek, Len (August 2, 2016). "In His Own Words: Gary Kildall". Remarkable People. Computer History Museum.
- ^ a b c d e f Kildall, Gary Arlen (August 2, 2016) [1993]. Kildall, Scott; Kildall, Kristin (eds.). "Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry" (Manuscript, part 1). Kildall Family. Retrieved November 17, 2016.
- ^ CPM User Group The source code can be found on Volume 30
- ^ Gordon Eubanks oral history transcript Archived August 24, 2006, at the Wayback Machine p. 9, November 2000, Computerworld Honors Program
- ^ "Editorial". InfoWorld. Vol. 2, no. 15. August 18, 1980. p. 8.
- ^ Pournelle, Jerry (May 1983). "Ulterior Motives, Lobo, Buying Your First Computer, JRT Update". BYTE. Vol. 8, no. 5. pp. 298–324.
External links
- Gordon Eubanks own story 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 on p. 115) November 1981
- Another CBASIC description
- Alternate CBASIC history at the Wayback Machine (archived May 4, 2006)
- cbc – a CBASIC to C converter
- Interpreter in 6502 assembler
- CBASIC 2.8 = CBASIC-86 1.00 Posting by Emmanuel Roche
- v
- t
- e
Microsoft |
|
---|---|
Texas Instruments |
|
Hewlett-Packard | |
Locomotive Software | |
Microcomputers | |
Minicomputers | |
Time-sharing computers |
|
Other |
|
Extenders |
|
oriented
Proprietary | |
---|---|
Free and open source |
extensions
Proprietary |
| ||||
---|---|---|---|---|---|
Free and open source |
| ||||
RAD designers |
|
- Altair BASIC
- Applesoft BASIC
- Atari BASIC
- Atari Microsoft BASIC
- Atari ST BASIC
- BASIC A+
- BASIC XE
- BASIC XL
- BASIC Programming (Atari 2600)
- BBC BASIC
- Benton Harbor BASIC
- Chinese BASIC
- Commodore BASIC
- Color BASIC
- Dartmouth BASIC
- Disk Extended Color BASIC
- Extended Color BASIC
- Family BASIC
- GFA BASIC
- GW-BASIC
- IBM BASIC
- JR-BASIC
- MacBASIC
- MBASIC
- MSX BASIC
- MS BASIC for Macintosh
- QBasic
- QuickBASIC
- S-BASIC
- Sinclair BASIC
- STOS BASIC
- SuperBASIC
- TI BASIC (TI 99/4A)
- Turbo-BASIC XL
- Vilnius BASIC