There are no instructions about how to build compiler and runtime from the
sources and the precompiled binaries are for crap. I've created submit
scripts to rebuild the compiler and runtime from the sources using my
ISIS tool disks. I also added a bunch of BASIC programs from the CPMUG
volumes to play with.
A harddisk image with sources, executables and examples is available at:
http://www.unix4fun.org/z80pack/
Enjoy,
Udo Munk
--
The fun is building it and then using it.
Gordon was brought on by Gary, I believe sometime in late 1979, when Gordon
was discharged by the Navy and when Gary bought Eubank's "Compiler Systems".
It is my understanding that Gordon made all subsequent modifications to the
product then being sold by "Digital Research". Gordon would later found
Symantec and left sometime around 2002 to found yet another pioneering
software enterprise. His name continues to pop up in business articles
dealing with developing software technologies.
IMSAI was the first company to sell the commercial version of "Basic E", and
we continued sales through Fischer-Freitas after IMSAI Manufacturing
Corporation folded. We always dealt through Gordon's mom who handled the
business end of things back then, as Gordon was stationed in Hawaii. She
lived in Southern California, just over the border from Northern California
;) He once called me on a noisy phone line about shipping the system to me,
and when I commented on the apparent distance, he said that he was on a
submarine! I always wondered if he was pulling my leg, and am now inclined
to assume that to be the case. We kept Gordon's IMSAI 8080 and FDC Floppy
Disk system up and running on into the early 1980's, so it might be implied
that at least some of the development was done on that system.
-Thomas "Todd" Fischer
...
> to assume that to be the case. We kept Gordon's IMSAI 8080 and FDC
> Floppy Disk system up and running on into the early 1980's, so it might
> be implied that at least some of the development was done on that
> system.
>
> -Thomas "Todd" Fischer
Very interesting.
When I look at the sources and what it needs to build executables from
that, I believe it was build with a PL/M-80 cross compiler. At least it
was build at a time when linkers where non existing and modules where
patched together with a debugger instead. I left it as it was, that could
be done different with a development system, but why use some stinkin
linker when we got ddt ;-)
You create your source file (normally .BAS extension) with a text editor
(ASCII), you compile it with CBAS or CBAS2 (version 2) to a P-Code
intermediate file (*.INT) extension, then you run the P-Code file with
CRun or CRun2 (which was actually an interpreter).
> This basic compiles to pseudo-code, not to native code.
>
> You create your source file (normally .BAS extension) with a text editor
> (ASCII), you compile it with CBAS or CBAS2 (version 2) to a P-Code
> intermediate file (*.INT) extension, then you run the P-Code file with
> CRun or CRun2 (which was actually an interpreter).
That's the case with UCSD Pascal, Fortran, Basic as well as with Java.
The compiler compiles to P code for some sort of P code runtime, which is
used to run the result. It's not the target system that makes a compiler...
My recall is the "C" version stood for "compiler", rather than "commercial".
I may be wrong since it's been a long time since I played with it, but I
seem to remember that the edited code had to be processed by a compiler that
rendered the final code. Please correct me if I'm wrong about this.
Regards,
-Thomas "Todd" Fischer
"Barry Watzman" <Watzma...@neo.rr.com> wrote in message
news:46f423cf$0$11018$4c36...@roadrunner.com...
And I still have both Basic-E and C-Basic (1 and 2) right here on this
PC, and they both have a compiler and a run-time interpreter.
Please do not top-post. Your answer belongs after (or intermixed
with) the quoted material to which you reply, after snipping all
irrelevant material. See the following links in my sig.:
I have fixed this post, for general usefulness. Note that Mr
Watzman seems determined to foul all posts with his non-standard
top-posting, but fixing is fairly easy if done immediately. I hope
the next poster snips properly.
--
<http://www.catb.org/~esr/faqs/smart-questions.html>
<http://www.caliburn.nl/topposting.html>
<http://www.netmeister.org/news/learn2quote.html>
<http://cfaj.freeshell.org/google/> (taming google)
<http://members.fortunecity.com/nnqweb/> (newusers)
--
Posted via a free Usenet account from http://www.teranews.com
So maybe we are both right; but I still don't think it was what the "C"
in C-Basic stood for.
Plonk!
(Bottom-posted, you will note)
TOP POSTING ****WILL***** continue. Whether you like it or not.
I have assumed that. See the 2nd paragraph above from me. You
obviously do not care whether you cause problems for other users.
--
Chuck F (cbfalconer at maineline dot net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net>
Evidently Mr. Watzman missed his meds today...
--
+----------------------------------------------------------------+
| Charles and Francis Richmond richmond at plano dot net |
+----------------------------------------------------------------+
Seems like the Falcon did too!
CBFalconer, for the good of the group - please take you "Do not top
post" comments private, send the person an email, or don't post them.
This is not the first interesting topic you have killed with you
effort in teaching others how to post a message.
Bill H
> CBFalconer, for the good of the group - please take you "Do not top
> post" comments private, send the person an email, or don't post them.
> This is not the first interesting topic you have killed with you
> effort in teaching others how to post a message.
Just add him to your mailer's killfile. Not worth getting upset about.
Unfortunately you can't do that with google groups (eww he said the
"g" word).
Bill H
> He once called me on a noisy phone line about shipping the system to me,
>and when I commented on the apparent distance, he said that he was on a
>submarine! I always wondered if he was pulling my leg, and am now inclined
>to assume that to be the case.
I wouldn't be so quick to jump to that conclusion. Any US Navy vessel
was capable and eligible to use the commercial ship to shore marine
radio-telephone circuits. They were short wave, and tended to have
static with some fade out if the distance was more than a couple
hundred miles. I set up a few personal calls in my time.
Bob McConnell
N2SPP
Ex-RM2
NFIT (USS Cochrane DDG21)
Aug 70-Apr 74
Thanks for the clarification, Bob! The leg cramps are easing as I write!
In addition to the C-Basic 80, which compiled an intermediate RTL then
was executed with a Run executable, DRI did in fact create a fully
compiled version of C-Basic. These were CB-80 and CB-86. The output of
both were native code executables.
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." Damn! I wish I hadn't drank so much with Gary that
afternoon!
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 am a Neanderthal with regard to programming languages and 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.
...
> 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 am a Neanderthal with regard to programming languages and 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".
Probably it's written in PL/M-80 same as BASIC-E.
(snip)
> I am a Neanderthal with regard to programming languages and 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.
HASP was the spooling system used with OS/360 and successors.
It was common in those days to use cross assemblers on larger
systems to assemble 8080 code. Microsoft used PDP-10s.
I knew people around 1977 that used the OS/360 assembler with
macros for each 8080 instruction, and then post processors to
generate the appropriate listing and object file.
-- glen
I looked at my IMSAI archives and reviewed a few relevant manuals. I
sent details to Todd Fischer for further comments and to jog his
memory. In brief, BASIC-E came as a compiler and as an interpreter.
The versions 2.1 and 2.2 manual includes a photocopy of theEubanks
and Naval school manual from December 1976. The IMSAI manual is dated
Jan 1977 and for IMDOS V2.03 (related to CP/M V1.2 and 1.3). I saw no
immediate reference to source language.
C BASIC was available by IMSAI in late 1977or early 1978, as a
compiler and interpreter which runs under IMDOS. So suggests the user
manual. No info was obvious about the authors or the source language.
I"d have to compare the manual to BASIC-E to see if they are obviously
similar, someone would have to compare object files. A "BASIC-8A
version 1.4" manual from early 1977 includes the 8080 source code, and
is strictly for paper tape or cassette file storage, and is ROMable.
Again, I've sent Todd the details, he may be able to fill in the
blanks. It's possible a press release or article from the period will
have more information about these products.
Herb Johnson
Herbert R. Johnson, New Jersey USA
http://www.retrotechnology.com/herbs_stuff/ web site
http://www.retrotechnology.net/herbs_stuff/ domain mirror
my email address: hjohnson AAT retrotechnology DOTT com
if no reply, try in a few days: herbjohnson ATT comcast DOTT net
"Herb's Stuff": old Mac, SGI, 8-inch floppy drives
S-100 IMSAI Altair computers, docs, by "Dr. S-100"
I have a copy of the IMSAI 8K basic that I bought in 1977 on tape for an
Imsai MIO board (I'm not sure if I still have the tape or not). I also
have the source code, which came as a printed listing, in CP/M .ASM
format. I'm not sure where this came from, I might have created it
myself or I might have found it somewhere. But, in any case, I have it
(I have not compared this to the paper source code listing).
I also have SCS-1, which I did key in myself. I know that I put this in
the Harte library (I may have put the 8K basic there as well).
One thing I am looking for is an "add-on" for SCS-1 that was called SCS
0.5, and it was the product of a group in Tallahassee, Florida. I
bought it and used it extensively, and I should have it but I can't find
it anywhere.
There was 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.
> Herb, I think you misunderstand the description of Basic-E and C-Basic
> as being available as a "compiler and an interpreter".
> There was 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 compiler/interpreter distinction does not depend on the target
being P-code or not. It is still a compiler.
In many languages the distinction is important regarding what has
to be known at compile time. As one example, many interpreters,
and the language designed for them, allow one to select variables
by name, such as the value of another variable, at run time.
That property is usually not part of, or very limited, in
compiled languages.
But many systems, especially BASIC systems, are semi-compiled.
Keywords are converted to single byte tokens as the program is
entered. In some, a symbol table is generated to speed up
variable allocation.
I still remember a Tiny BASIC system known as Palo Alto Tiny
BASIC (I knew the person working on it at the time) that allowed
expressions as the input data for INPUT statements. This allowed
alphabetic input such as:
10 N=1
20 Y=2
25 PRINT "Type Y or N";
30 INPUT X
40 IF X=Y THEN 100
I also knew a BASIC system that allowed one to modify a program
while it was running, and continue on from that point.
(Such as after it stopped due to an error or hitting the
interrupt key.) Again an interpreter only property.
Most compiled languages use a run-time library which, in the
interpreter/compiler distinction, makes them not 100%
compilers. Especially consider the processing of a FORMAT
string in Fortran or some BASIC systems.
The fact that P-code is interpreted doesn't make the program
that generated the code an interpreter. Besides, one could always
create hardware that would execute such code.
-- glen
There is a long interview about that time with Gordon Eubanks archived at:
http://www.cwheroes.org/archives/histories/Eubanks.pdf
There he says he was doing Navy service on submarines, so that probably
was truth.
...
> Again, I've sent Todd the details, he may be able to fill in the
> blanks. It's possible a press release or article from the period will
> have more information about these products.
Here is a bit more information:
http://www.vannattabros.com/history3.html
Barry is mostly correct. BASIC-E and CBASIC were released as a pair of
programs. One was called a compiler; it
converted the BASIC source to an intermediate form. The other was
called a "run-time interpreter"; that actually RAN the precompiled
code. This saved space and execution time - both very scarce resources
back then! I'm sorry my quick read of the manual led to some
confusion.
But, there were also BASIC interpreters at the time, into which one
could type a program or statement and execute it (or them). CBASIC and
BASIC-E were not of that sort.
> 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.
A BASIC-E was released with IMDOS 2.02. My IMDOS manuals with BASIC-E
are dated January 1978. However,
BASIC-E was written years prior, and available with CP/M. The IMDOS
BASIC-E manual includes a copy of the Naval Postgraduate School copy
of the BASIC-E manual of Dec 1976, which internally refers to CP/M.
BASIC- E was the 1975? master's thesis of Gordon Eubanks, working
under Dr. Gary Kildall, while both were part of the Naval Postgraduate
School.
> 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 ...
And, in fact, BASIC-E and CBASIC document that have different ways to
represent numbers or values. That's clear from my reading each of the
manuals I've mentioned. BASIC-E uses "binary floating point...[to] 7
signifigant digits" (says IMSAI). CBASIC "features 14-digit
arithmetic", says that manual. The authors of CBASIC are not mentioned
in the IMSAI manual. But a web link posted by Udo Munk later in this
thread, refers to a year 2000 interview transcript of Gordon Eubanks.
In that interview he describes how and why he wrote CBASIC under a
company he formed called "Compiler Systems", which sold CBASIC rights
to IMSAI, and which was eventually bought by Digital Research.
Thanks, Barry and Udo! Thanks also to Todd Fischer, which whom I'm in
private correspondence. Ultimately some subset of this information
will be added to my DRI Web site as part of that history.
No thanks, but thanks for the offer all the same.
N.B: The issue is NOT about top or bottom posting, though that is an
important side-effect, but it is about sensibly snipped quoting and
mindless fullquoting. Of course when someone decides to spew pages and
pages of stuff people have read already and have available for
reference at a keystroke through threading, then top posting is the
only way to make that rubbish legible.
But in sensible and considerate posts top or bottom posting does not
make a difference big enough to be concerned about.
There is one more thing about bottom posting though: It makes it easier
for me to ignore full quoted posts when all I see is a complete screen
of all quote. Top posting fullquoters hide their utter disregard for
their readers just that little bit better.
Axel
John C. Dvorak provides a concise and probably accurate history of C BASIC's
relatively brief existence at http://www.dvorak.org/blog/?page_id=8221
http://www.retrotechnology.com/dri/dri_basic.html
which puts Eubanks' CBASIC and BASIC-E work in the context of Digital
Research's history. Thanks to all for the discussion. It's part of a
larger early history of Digital Research and CP/M which I have on my
Web site at this link:
http://www.retrotechnology.com/dri/d_dri.html
which in part is also drawn from comp.os.cpm discussions. Thank you.
Nice work, Herb! One correction in your web site posting, though... IMSAI
Manufacturing filed for bancruptcy in 1979; not 1981. But then, you knew
that!
Regards,
-Thomas "Todd" Fischer
Herb Johnson schrieb:
>http://www.retrotechnology.com/dri/dri_basic.html
>http://www.retrotechnology.com/dri/d_dri.html
Thank for your Info.
Rolf