early 8080 Floating Point Code

Floating point packages for the 8080

These programs, with corrections, are not readily available so I have them here on my site. This Web page and archive built by Herb Johnson. Last updated dated Aug 22 2008; minor fix Sept 20 2011.

Lawrence Livermore Labs Floating Point & BASIC

In October 2006, Emmanuel Roche, AKA "French Luser", led a discussion in com.os.cpm about 8080 floating point code. Roche has posted into that Usenet newsgroup, the software, documents, and commentary on and about CP/M for several years; including transcripts of original documents. His intentions appear to be in part, to preserve and distribute these documents via Usenet newsgroups, primarily comp.os.cpm but previously comp.os.cpm.amethyst (removed in 2006).

Posted incompletely by Roche was this is the PDF of a document as follows:


   UCRL-51940, "Floating-Point Package for Intel 8008 and 8080 Microprocessors"
   by Michael D. Maples
   Lawrence Livermore Laboratory,
   University of California/Livermore, California 94550,
   October 24, 1975

Roche posted the text but not the code of the document. Later, he provided privately to me his version of the source code, with square root code NOT INCLUDED IN PRIOR ARCHIVES, and more commentary. His text is at this link on my Web page; his code LLLFPODT.ASM is at this link on my Web page. My corrections to the floating point code based on the LLL document above are at this link. For some reason, the SQUARE ROOT subroutine was not included with the CPMUG submissions! It's in my "corrections" document. An earlier version of the code was also offered on CPMUG disks #2 and disk #10; as part of LLL "floating point BASIC". Images of those disks can be obtained from the retroarchive Web site as CPMUG010.ARK and CPMUG002.ARK. They should also be on the Walnut Creek CP/M CD-ROM, copies of which are on many Web archive sites. I've extracted out the floating point source code as LLLFP10.ASM and LLLFP02.ASM. The simple console input-output routines are in LLLMON.ASM. Also the docs from the disk are at LLLBASIC10.TXT. Again, these archives DO NOT INCLUDE THE SQUARE ROOT ROUTINE which is included above.

Falconer Floating Point 8080 code

This code was requested on Sept 2006 in comp.os.cpm. It was originally published in Dr. Dobb's Journal in 1979, and other places later. Apparently the author, Chuck or Charles Falconer, has lost his hard-drive archives of various versions of this code. If other people have a "digital" version they might contact him, or me. Roche posted one version of this in March 2001; Chuck Falconer says it's a "much improved version" of the DDJ code. In Oct 2006, Roche sent me his copies of what he posted; they include the tab stops not in the comp.os.cpm files so I've replaced them here. Here are also other ORIGINAL files Roche posted; some responses by Mr. Falconer; and another posted comment on the DDJ docs by Mr. Falconer.

part 1 of 5 of the code INTARITH.ASM;
part 2 of 5 of the code FLTARITH.ASM;
part 3 of 5 of the code FLTINPUT.ASM;
part 4 of 5 of the code FLTOUT.ASM;
part 5 of 5 of the code FUNCTION.ASM;
the text of the DDJ article;
the text of the DDJ article in WordStar format;
improved multiply, posted by Falconer;
docs from DDJ article, posted by Falconer;
comments on docs, posted by Falconer.

Floating point chips and S-100

In the 1970's, Intel and AMD made two cross-compatible models of floating-point processor chips. These chips used a simple protocol to accept data and floating point instructions, to produce a result. They were intended to supplement a microprocessor and accessed as an I/O location. One chip used an IEEE floating point standard, one used another standard. Also, some chips ran from a 1MHz clock, some a 2MHz clock. These chips were available commercially for many years, but always sold above $100 each. In 2007, these chips were likely worth something like $50 each for use. (I don't know if a "chip collector" would pay more, for specific models and physical features, etc.)

In the S-100 world, the Compupro System Support 1 (SS1) card and the TDL (Technical Design Labs) SMB card supported these chips. Pascal MT+ software had an option to use the AMD chip. The Apple Lisa 2 had a socket for the AMD chip. We will update this information if you have some to provide.

We have a few of these chips available, but not cheap. They have been TESTED on a Compupro system. Ask for price and availability.

AMD 9511A - compatible with Intel 8231
AMD 9512 - compatible with Intel 8232
Intel 8231, 8231A - non-IEEE floating point format, supported sine, cosine, tangent, etc.
Intel 8232 - IEEE floating point but no sine, cosine, tan, etc. AMD and Intel data sheets available, ask for photocopy, specify brand and model
AMD 9511 data sheets, 12 pgs (from copy)
AMD 9511A data sheets, 26 pgs (from copy)
Intel 8231, 8232 data sheets, 12 pages each (1983 data book)

A reference article: S. Cheng and Rallapalli K (authors), "Am 9512: Single chip floating point processor". In Conference Record, (IEEE) WESCON, 1980. Paper no. 14/4.

Other S-100 companies offered floating point boards. Northstar was one of the earliest, with their Floating Point Board (FPB) made from many small programmed logic chips. I believe there were some S-100 products which used hand calculator chips.


Contact me

To contact me, get my email address from this Web page..