Keeping things Simple - Lessons from the Past

This weekend I have been exploring the FOCAL language that DEC realeased for several of their PDP machines including the PDP-8 in 1969.

FOCAL is similar to BASIC in that it is an interpreted language, and can be executed immediately from a typed command, or constructed into a program using a line numbering system.

It was devised in the late 1960’s when most Teletypes were uppercase only, and in order to preserve the precious 4K words of core memory on a PDP-8, commands were truncated to just a single uppercase alpha character.

Incredibly FOCAL came with floating point math, scientific notation and a whole host of in-built mathematical functions including TRIGs, LOG, EXP etc. There was also a kind of line editor, which uses the Modify command, program listing using the Write command and the means to create new commands and functions to customise the language to suit your own particular application.

The bulk of this language was written in 1968, several years before the likes of Gates, Allen and Woziak started writing BASIC interpreters.

FOCAL was more than just a programming language, it was a programming environment, targeted at the DEC range of minicomputers. With FOCAL, DEC’s customer Userbase could do useful, productive, scientific and engineering programming - without having to be experts in assembly language programming, or have an intimate knowledge of the hardware that the code was running on.

I encountered my first microcomputer in the Summer of 1978, but I believe that I came across a PDP-8 in the Summer of 1976, when my school form toured the offices of “The Scotsman” newspaper in Edinburgh, where IIRC the PDP-8 was being used to help with newsprint typesetting. Amongst the “hot metal” Linotype machines, there was at least one minicomputer storing and editing text on paper tapes that was then transcribed to drive the character input for the Linotype machines.

It’s over 45 years ago, when the world was a much simpler place, and clever engineers worked hard to get the most value from the (now) primitive hardware of the day.

My High School got a Research Machines 380Z (Z80 S100 cp/m machine) in the Summer of 1978 - and aged 13, I spend many a lunchtime playing Lunar Lander and Space Invaders on it.

Eventually at 17 - I built a ZX81 up from a kit - which started my career in hardware.

And the rest, we say, is history.


I think I still have a copy of Focal in this PDP-8 core store:-

The Wikipedia entry for Focal is interesting reading.

FOCAL is an interactive interpreted programming language based on JOSS

The other noticeable change was to rearrange the keywords so each started with a unique letter. This simplified the parser, which needed to read only the first letter of the command on a line of code, and could then skip forward to the next blank.

Variable names may start with any letter except F …

FOCAL also included a number of special-purpose functions:[27]

  • FDIS took two values and plotted a dot on the screen of graphical terminals
  • FADC read a value from a numbered analog input and returned an integer value

haha - core store as an archive medium.

@jecel mentioned Joss recently, in the Building a BASIC Interpreter, ’80s style thread.

Thinking of it, is there a way of conveniently taking an image of the magnetization of a core plain without causing any damage? (E.g., applying iron filings may not be that great an idea.)

There used to be a little viewing glass gadget with liquid inside which could visualise magnetic tape…

1 Like

Fabulous! I want one, I have a couple of use cases. I guess I’ll have to look for that modern version which doesn’t have the nice wooden box.

And I wasn’t aware of the fact that “3M” used to stand for “Minnesota Mining and Manufacturing” - learned that as well.

1 Like