History of FOCAL (Formula Calculator)
Bruce Ray, editor - Bruce@Wild-Hare.com - Wild Hare Computer Systems Inc.
Software Preservation Group
Computer History Museum
"... I took an editor, a floating point package and the specs for the JOHNNIAC Open Shop System (JOSS) and ideas from the Massachusetts General Hospital Utility Multi-Programming System (MUMPS) and wrote an interpreter that would do the user's job on the spot and interactively. This program became known as Formula Calculator (FOCAL)." - Rick Merrill
FOCAL - The Beginning
"Back in Maynard I took an editor, a floating point package and the specs for the JOHNNIAC Open Shop System (JOSS) and ideas from the Massachusetts General Hospital Utility Multi-Programming System (MUMPS) and wrote an interpreter that would do the user's job on the spot and interactively.
I remember thinking that I wanted a single letter for each command not only for the simple branch table but also for debugging. I did not want to have to remember an octal code for each command but to be able to see in the code the letter itself that DDT could display. I eschewed pre-compiling as a waste of time.
I gathered the code for the editor and the floating point package (probably developed by Henry Burkhart) and got them to assemble together eliminating duplicate symbols and other bookkeeping issues. This was the top-down stage. Then I realized that my branch tables used full word addresses and would therefor flow across the page ends, wasting no space because of local page sizes. So I began coding from the bottom-up stage with SORTJ, PUSHJ, POPJ, ETC.
I acquired the "JOSS Apologetica" which was really helpful in distinguishing the commands so that there was no overlap. Then I found that the semicolon could fore-shorten commands in generally useful ways. Adding buffered interrupts came later and made a huge difference.
This program became known as Formula Calculator (FOCAL)." [Rick Merrill 2024]
Development Timeline
Year | Description |
---|---|
1968 | Initial FOCAL release (for PDP-8) |
1969 | FOCAL, 1969 release (for PDP-8) |
1971 | FOCAL available on all commercial DEC machines (PDP-5/7/8/9/10/11/12/15)
Nova 800 running PDP-8 emulator running FOCAL 69 at Data General booth at FJCC (Las Vegas) |
1977 | Intel 8080-based systems
MOS Technology 6502-based systems |
1978 | DEC VAX computers |
1980 | Texas Instruments TI-990 |
2000 and beyond | Ports for any machine with a 'C' compiler (i.e. micros, IBM 360/370, .etc) |
Materials from Developer
Rick Merrill has donated his original FOCAL archives to the Computer History Museum and made PDF reproductions available for downloading here. Donated items include computer listings, marketing literature, client comments.
Of particular significance are Rick's personal notes and the first FOCAL manual.
Personal Documents
- Rick Merrill. FOCAL Notes_and_Background. 2024, 8 pages. PDF
- Westwood Public Schools, Project Local, TSS-8 FOCAL 'thank you' letter to Rick Merrill. PDF
- Sales Engineering. Digital Equipment Corporation, 1968, 4 pages. Sales brochure with Rick Merrill's picture on cover. PDF
- Richard M. Merrill business card, 1966, Digital Equipment Corporation. PDF
- Samples of FOCAL user compliments received by Rick Merrill, personal memorabilia, undated. PDF
Technical Documents
- FOCAL Technical Specifications. Manual DEC-08-AJBA-DL, Digital Equipment Corporation, 1968, 60 pages. PDF
- FOCAL Demonstration Programs. Manual DEC-08-XJFA-D, 1970, 140 pages. Only copy known to exist. PDF
- Doug Wrege. FOCAL: How To Write New Subroutines and Use Internal Routines. DECUS NUMBER FOCAL-17, 42 pages. PDF
- PS/8 FOCAL. OMSI (Oregon Museum of Science and Industry) Development Group, 1971. PDF
- pdp8/i-pdp8/L FOCAL. Language summary reference card, 8-pages, 1969. PDF
- pdp9-pdp9/L FOCAL. Language summary reference card, trifold, 1969. PDF
- pdp15 FOCAL. Language summary reference card, trifold, 1970. PDF
Listings
- DEC-8E-LFOCA-A-LA1. FOCAL-8 listing, 1971. PAL assembler source code. From Rick Merrill's blue computer binder. PDF
- DEC-12-AJAA-LA. FOCAL-12 listing, 1971. PDF
- James Storer. APOLLO: FOCAL Lunar Landing Simulation. DECUS Number FOCAL8-81, 1970. Online at svn.so-much-stuff.com
Marketing
- focal, a new conversational language. Digital Equipment Corporation. Orange-cover brochure, 36 pages. PDF
- focal point. Digital Equipment Corporation, newsletter, 1969, 4 pages. PDF
- FOCAL Party Line. Digital Equipment Corporation, 1969, 6 pages. Paper brochure. PDF
- FOCAL Lets You Tame a Computer. Digital Equipment Corporation, 1969, 4 pages. PDF
Interesting Mentions
- Rick Merrill. Program your minicomputer in FOCAL. Electronic Design, Volume 15, July 19, 1970. PDF
- "Excuse me [Microsoft], has an anybody seen the FOCAL interpreter?"
- Mike Bedford. Relive classic FOCAL days on your PDP-11. Linux Format article, May 2023. Online at everand.com
- Three Days of the Condor. Movie, 1975. Shows FOCAL on PDP-8/E.
Resources
- Al Kossow, curator. DEC FOCAL in bitsavers.org document collection.
- pdf/dec/pdp8/focal
- pdf/dec/pdp11/lang/focal
- pdf/dec/decus/focal
- FOCAL8 ABSTRACTS. Section 2.3 of PDP-8 Program Library Catalog, Digital Equipment Corporation Users Society, June 1979. Online at bitsavers.org
- Vince Slyngstad, curator. FOCAL software. Sections of his PDP-8 web site.
- Ken Martin, curator. DEC FOCAL language manuals and information. Online at github.com/kenmartin-unix
- Doug Jones, curator. FOCAL documents. Section of his PDP-8 web site, University of Iowa. Online at homepage.cs.uiowa.edu/~dwjones/
- FOCAL, 1969. Source code and documentation. Part of PDP-8 web site. Online at ibiblio.org
- www.archive.org. Search for, e.g., DEC PDP-8 FOCAL.
- FOCAL (programming language). In Wikipedia. Retrieved 19 December 2024, from https://en.wikipedia.org/wiki/FOCAL_(programming_language).
- PDP-8 History and Operation - and thoughts of FOCAL versus FORTH. Thread on Retrocomputing Forum, 2020-201. Online at retrocomputingforum.com
Other implementations
- Dave Pitts. FOCAL interpreter. Written in C.
- Dave Pitts home page
- .tar.gz at cozx.com/dpitts
- Amndrew Savinykh. Fork(?) at github.com/AndrewSav/focal-69
- Diana Tikhonova. Focal-interpreter. Written in C. Online at github.com/dixitix
- Maury Markowitz. RetroFOCAL. Interpreter written in C. Online at github.com/maurymarkowitz
Acknowledgments
Thanks to Rick Merrill, Paul McJones, and the proprietors of all the web sites linked to above.