This document copyright Herbert R. Johnson 2007. Updated Dec 20 2014.
Another discussion on IMDOS, and links to resources, is on this linked Web page.
To return to my Digital Research page click here.
To return to my S-100 Home page click here.
To contact me @ email follow this link.
BASIC was a part of Dr. Gary Kildall's early CP/M history. Kildall's student Gordon E. Eubanks wrote BASIC-E for his master's thesis of 1975; it was released in the public domain, and also offered by IMSAI. Eubanks wrote CBASIC in 1976 and sold rights to it to IMSAI. CBASIC and BASIC-E used a compiler and ran the results using a "run-time" interpreter. That was different from other BASICS, including Microsoft's, which directly ran the BASIC "sources" with one interpreter program. Eubank's CBASIC was licenced by IMSAI. Later, Eubank's company was bought by DRI.
Details of this history, and features of these BASICS, are described below. This is followed by accounts from people involved at the time, and quotes from IMSAI manuals on these programs from Eubanks and IMSAI. Additional references are Web linked at the end.
My thanks to Todd Fischer, Barry Watzman, Udo Munk for permission to use their quotes and correspondence. Thanks to John Dvorak for his account of CBASIC and Gordon Eubanks; and to ComputerWorld for their Eubanks interview. Emmanuel Roche provided a Eubank article. - Herb Johnson
Gordon Eubanks was interviewed in 2000, in a ComputerWorld oral history project. Eubanks says he wrote BASIC-E in 1975 as a thesis project under Dr. Gary Kildall. The software consisted of a compiler which accepted a BASIC program, and produced a compiled file in an intermediate form and a "run-time interpreter" which ran the compiled file in an 8080 based diskette system, initially under CP/M.
Other people also wrote various BASICS to run on the 8080 processor. Some of these were put into the public domain; others were sold as products. Microsoft's first and later major product was their "Microsoft BASIC", first sold with the MITS Altair on paper tape (probably sometime in 1976). Later it was licensed or sold for various disk operating systems including CP/M. These BASICS were primarily interpreters, which would directly execute the BASIC "source" programs, or execute BASIC statements entered in real-time into the interpreter from a terminal keyboard.
Eubanks released the BASIC-E executables to the public domain in 1975; he noted this in a DDJ article in Nov 1977. But IMSAI nonetheless wanted to offer BASIC-E, and they wanted Eubanks to work on a compiler they could own rights to. So in 1976 he made an agreement to consult with IMSAI under his own company called "Compiler Systems"; and he produced CBASIC in late 1977, written in PL/M.
A notible feature of BASIC packages, is how they did arithmetic and represented values or numbers. BASIC-E used binary floating point representation, which was the equivalent of 7 signifigant decimal digits. For CBASIC, Eubanks rewrote the arithmetic package to use BCD arithemetic and to represent numbers as 14-digit BCD values. That became an important issue at the time, because some questioned Microsoft BASIC's arithmetical accuracy. More digits of representation increased the accuracy; and BCD arithmetic avoids some kinds of errors prone to binary arithmetic.
CBASIC was used to develop products, such as database tools; and feedback from those developers helped Eubanks improve his product. Others companies added CBASIC to their products, like Adam Osborne for his Osborne 1. CBASIC became a premier product. By 1981, Eubanks' Compiler Systems was bought by DRI, and Eubanks worked for Kildall for a few years afterward. But other languages and products became dominant and (apparently) support for CBASIC ended by 1983. DRI developed many products and operating systems, and during the 1990's was sold to Novell and then passed on to other companies. Currently DRDOS.COM owns the DRI product line.
Gordon Eubanks later started a company called C&E Software with Dennis Coleman, and they developed a word processor & database product called Q&A. Eubanks was financed to acquire and run Symantec which sold and supported Q&A. The company grew to acquire other companies (Peter Norton, Central Point). Symantec is a major software company to this day.
Meanwhile, IMSAI went into bankruptcy in 1979 and the rights to many IMSAI products and to CBASIC were transferred to Fischer-Freitas. Todd Fischer continues the IMSAI brand to this day.
Thomas "Todd" Fischer wrote in comp.os.cpm in Sept 2007:
> Wow! In reading through some of the old archival documents from the earliest days of > IMSAI and Fischer-Freitas, I came across a letter from the Law Offices of Schroeder > & Davis Inc.. It was addressed to me dated November 17, 1981, and signed by > G. Gervaise Davis III, Kildall's legal mentor and representative for all things > legal and revenue-generating. > > The letter reads in part: > > "I understand from talking with Gary Kildall of Digital Research that you and he > have agreed that your company, as the successor in interest to the software of Imsai > Manufacturing Corp., has no objection to Digital Research picking up the development > and marketing of the former Imsai 8K BASIC Interpreter of which our clients have > copies of the source, as I think several other people do, so long as in any > documentation for the language they simply give credit to the fact that this BASIC > originally came from Imsai and is developed by Digital at its own expense with\ > the consent of Fischer-Freitas." > > I had forgotten about this after so many years, so went back into the older files > and found the source code listing for what we then titled "BASICI1". ...I can't > immediately tell what language this was written in, but the listing bears the > legend "HASP SYSTEM LOG", and lists Gordon Eubanks as the session operator. > It is dated 12 JAN 1977. My guess is that Gordon wrote this at the Naval > Postgraduate School in Monterey, CA. I have a vague recollection of building > an IMSAI 8080 with FDC-2 (dual 8" CalComp disk drives) while employed at > IMSAI, and that this system was being built for "one of our developers". > > I'll have to dig up and peruse some related folders and documents in our > files to get a better insight into how this all evolved, but I strongly > believe that the product we listed in our early catalogues as BASIC-E > was the renamed BASICI1, and that the "E" extension was a nod to Gordon's > contributions. - Todd Fischer
I [Herb Johnson] wrote privately to Todd Fischer and Barry Watzman, and passed to them the following information from my IMSAI documentation files.
In my binder of a IMDOS 2.05 document set from mid-1978 (corresponding to CP/M version 1.2 or 1.3), I have this manual, "Basic-E User's Guide. For Basic-E Compiler (BASIC-E.COM) Ver 2.1 and BASIC-E Run-time Interpreter (RUN-E.COM) Ver 2.2. (c) 1978 IMSAI Manufacturing Corp. January 1978". For a list of the chapters and pages in this IMDOS 2.05 document, check my IMSAI documentation Web page.A copy of the 500-page manual is available for a fee.
The introduction to the manual says "BASIC-E was written by Gordon E Eubanks at the Naval Postgraduate School..." In fact, the bulk of the manual is a photocopy of another manual, with title page as follows; "BASIC-E Reference Manual 1/27/77, Micro-computer Laboratory, Naval Postgraduate School, Monterey California. Gordon E Eubanks, Jur., 15 December 1976".
The IMSAI introduction refers to IMDOS, and the IMSAI "FIF floppy disk interface revision 4 firmware". It also refers to a "previous version 1.4". The "Eubanks" portion of the manual, references CP/M only, and to a footnote for "Kildall, G.A. An Introduction to CP/M Features and Facilities, Digital Research, 1976."
I have as a seperate manual, the "C BASIC User's Guide", with subtitle: "CBASIC Compiler (CBASIC.COM) Ver 1.01; CBASIC Run-Time Interpreter (CRUN.COM) V 1.03", dated 2/8/78 and (c) IMSAI 1978. The manual says this runs under IMDOS. There is no indication as to who wrote these tools or what they were written in. I have an original 8" diskette which was provided with another version of this manual, it has a lable "V1.01 CRUN ver (blank) (c) 1977 IMSAI MFG Corp." But that disk and manual are sealed so I can't read that manual.
The CBASIC User's guide manual says "CBASIC operates..under the IMDOS or CP/M operating system. CBASIC is a partially compiled language, increasing execution speed...CBASIC is not interactive. The user prepares a file containing the CBASIC program...the compiles it with the CBASIC compiler, then executes it...with the CBASIC run-time interpreter, CRUN."
[Also]I have another manual in this binder, possibly associated with IMDOS 2.05, as follows. "BASIC-8A rev 0. 8K Basic ver 1.4, (c) 1977." the manual says this version is provided on and supports paper tape, Tarbell format cassette; and EPROM. The SOURCE listings are included in the manual, written in 8080 assembler. Those listings have updated changes from 2/77 to 5/77, with change notes initialed with "JRB", "DK", and "DH". the copyright on the source listings is IMSAI.
Subsequently, Todd Fischer identified "JRB" as J. Rob Barnaby, IMSAI's "brilliant... chief programmer" at the time, who later went on to write WordStar for Seymore Rubinstein at MicroPro International. "DH" was Duane Hendrechs who "was initially a tech, but went on to join Marketing in software refinement and enhancement".
Thomas "Todd" Fischer also wrote privately in reply:
> Hello Herb - I have all the documents > you cite as well as software on 8" disks that are mostly still readable > after all these years [with the correct hardware]. From the top of my head, I > seem to recall that we had a number of BASICs that ran under IMSAI > hardware and O/S's. > > There was the earliest, BASIC-4A (a 4K BASIC that I believe was credited > to Lawrence Livermore Labs and offered by IMS Associates in 1975); > > BASIC-8A that was offered in 1976 that ran from ROM or RAM (like BASIC > 4A) if loaded by cassette or paper tape; > > BASIC-E (which I believe is the evolved BASICI1) which was offered in > 1977 as a floppy-based utility for IMSAI's CP/M and IMDOS O/S's; > > C-BASIC (either Commercial BASIC or Compiler BASIC, depending on who > tells the tale!) and made available in early 1977. Also very pricey at > the time; > > and finally, > > MBASIC (Microsoft's disk-based interpreter BASIC). In thinking back, > both BASIC-E and C-BASIC were compiler BASIC's, while the others were > all interpreter versions.
Barry Watzman posted in comp.os.cpm in Sept 2007:
> Herb, I think you misunderstand the description of Basic-E and C-Basic > as being available as a "compiler and an interpreter". > > There was a compiler that compiled to P-Code. Then there was a run-time > interpreter that interpreted the P-Code. However, there was not ... > until about 4 to 6 years later .... a native code compiler. The term > "compiler and interpreter" doesn't have the meaning that one would at > first assume, e.g. it does not mean that the language was available in > both an interpreted form and a compiled form (at that time). > > Also, Basic-E was available with Imsai's original release of CP/M 1.33 > for the dual Calcomp system in 1976. This was a year or two before > IMDOS even existed. C-Basic came later, and was partially an attempt by > Gordon to be able to extract some revenue from his work on Basic-E > (anyone think that the E stood for Eubank?). Since Basic-E was public > domain, he had to "do something" to create a commercial product which he > would own and could therefore sell. My understanding (and recollection) > is that "something" was primarily replacing the floating point math with > BCD math so that the product could be used for accounting and financial > calculations (floating point produces rounding errors in math > operations, e.g. $19.95 + $32.49 might not result in $52.54, but rather > 52.539999, which might come out as $52.53 ... a one-cent error). Other > than that, I think that Basic-E and C-Basic were substantially identical.
I wrote back privately and confirmed his understanding from readings in the manuals. I also wrote:
As to differences between CBASIC and BASIC-E. The Feb 1978 C BASIC manual says "CBASIC features 14-digit arithmetic..". The Dec 1976 BASIC-E manual says "numbers are represented in binary floating point and approximately 7 signifigant decimal digits". CBASIC has an "INPUT" and "PRINT USING" statements; BASIC-E does not. All this suggested to me these are likely very different implementations.
Eubanks released the BASIC-E executables to the public domain in 1975. He noted this in a DDJ article in Nov 1977. It refers to a "public domain disk BASIC known as BASIC-E. BASIC-E was developed at the Navy Postgraduate School, Monterey, California for my Masters thesis." His article refers to the original version 1, and a version 2 available from him and from distributors and retailers. My thanks to Emmanuel Roche for providing this article's text as a public post in comp.os.cpm on Oct 27 2007.
Check my IMSAI documentation Web page.
Todd Fischer reported in comp.os.cpm: "John C. Dvorak provides a concise and probably accurate history of C BASIC's relatively brief existence at this Web link. It's a "whatever happened to..." article from Nov 2006 by Dvorak.
Udo Munk posted in comp.os.cpm in Sept 2007, two references to Gordon Eubanks interviews. One is at this link. It's a ComputerWorld oral history project where he was interviewed in 2000 about his life and history. He discusses his early work on BASIC-E and CBASIC, with Kildall and for IMSAI, at length.
Copyright © 2014 Herb Johnson