early 8080 Floating Point Code and math coprocessors

Floating point packages for the 8080

These programs, with corrections, are not readily available so I have them here on my site. I added discussion and information about early floating point chips, now often called "math coprocessors". This Web page and archive built by Herb Johnson. Last updated May 17 2012.

Lawrence Livermore Labs Floating Point & BASIC

In 1975, the LLL "floating point BASIC" was one of the earliest available microprocessor BASICs which supported floating-point and trigonometric math functions. In October 2006, Emmanuel Roche, AKA "French Luser", led a discussion in com.os.cpm (an old Usenet CP/M email discussion group) about 8080 floating point code. (Note: contrary to Usenet policies, Roche has posted into that Usenet discussion group, software and documents about CP/M for several years, including transcripts of copyrighted documents - he claims, for purposes of archiving.)

Posted incompletely by Roche was information from this 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 archives or images of the Walnut Creek CP/M CD-ROM, found on many Web CP/M 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, math coprocessors, and S-100

In the 1970's, Intel and AMD made two cross-compatible models of floating-point processor chips. They may have had some cross-licensing agreement because some physical chips identify both Intel and AMD. I don't know which company announced or produced "first".

AMD 9511, 9511A - compatible with Intel 8231; probably announced & produced in 1978-79
AMD 9512 - compatible with Intel 8232, IEEE floating point
Intel 8231, 8231A - non-IEEE floating point format, supported sine, cosine, tangent, etc. Data sheets dated Sept 1987
Intel 8232 - IEEE floating point but no sine, cosine, tan, etc.

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 and later, these chips are likely worth something like $50 each for use. "Chip collectors" pay more for specific models and physical features, etc. (Watch out for "offshore" bargain parts which may be re-marked fake chips.)

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

Chips and data sheets

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

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.

Alternatives to floating-point "chips"

Other S-100 companies offered floating point boards, using discrete logic or fast processors. 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 handheld calculator chips; these were quite slow. There's a bit of irony, as the first Intel "microprocessor", the 4004, was the result of a contract to build a calculator chip set.


Herb Johnson
New Jersey, USA
follow this link to email me @ my email address

Copyright © 2012 Herb Johnson