Classic programming

Brian L. Stuart blstuart at
Sat Aug 8 12:15:57 CDT 2015

On Sat, 8/8/15, Kip Koon <computerdoc at> wrote:
> I have often wondered what the inspiration for the C Language was.  BCPL ->
> MCPL -> B -> c, quite an interesting list of languages.

As Noel mentioned, MCPL wasn't part of the evolution; it actually
is pretty recent compared to the other three.

>  I had heard of B, but not BCPL and MCPL.  Are there any write-ups,
> manuals or articles on those three languages still around?  

Yes.  There are copies of several different generations of BCPL
reference manuals floating around online.  I've come across at
least three, not including the material in his current distribution
of it: basically the original one by Richards, one by Gardner,
and one done by XEROX.  It's been a surprisingly widely used
language for one that is so little known.  The basic story is that
Cambridge began developing a language calling it the Cambridge
Programming Language.  They joined forced with London University
who was also working on language development and changed
the name to Combined Programming Language.  Richards defined
a subset of the language with the intent that it be the implementation
language for a CPL compiler and described it in his dissertation
at Cambridge in '66.  The following year he was at MIT and did
the first implementation of this Basic CPL, or BCPL.  This was at
the same time as when the Multics project was in full force and
Bell Labs was involved.  If I'm not mistaken, there was a version
of BCPL that ran on Multics, and I am guessing that's where Ken
was exposed to it.  When Bell Labs pulled out of Multics and Ken
started playing around with the now famous "little used PDP-7"
he created a language for it that was based on BCPL but I gather
somewhat smaller because of the more limited resources on the
PDP-7.  That was B.  Then Dennis decided to add types to B and
the result was C.  As near as I can tell, MCPL was something
Richards was playing around with primarily about 10 years ago.
I'm not sure, but from what I can tell, his most recent work has
been on BCPL rather than MCPL, though as I mentioned, I'm
finding I really like MCPL.

Richards' pages for both languages are here:

Among the resources he has there is a rather extensive document
on running BCPL on the Raspberry Pi.

> Forth running on a homebrew 6809 system?  How interesting!

Yeah, it started as a weekend diversion doing a paper design
of a 6809 SBC, and I ended up doing a couple turns of the boards
and have a few lying around I play with from time to time.  One
of them is dedicated to running a TU-58 emulator for one of my

> I'd like
> to find out the details about your homebrew 6809 system. 

I've got a rather skeletal collection of material on it here:

> I'm working on a Kipper SBC that is based on Grant's
> Simple6809 6 Chip 6809 Computer that I'm in the middle of
> troubleshooting and any ideas to make this Kipper SBC better
> is most appreciated.  

The main things that you might find interesting here relative
to Grant's are the inclusion of a microSD card for storage,
a design and layout that allows for either a 6809 or 6809E
(with appropriate jumpering), and a little MMU for using 128KB
of memory mapped into the lower 48KB space in pages of 16KB.
The whole thing ends up being 11 (or 12 if you're running
on an E) chips:

1 - 6809 processor
1 - 6821 parallel interface
1 - 16550 UART
1 - MAX232 RS232 level converter
1 - 2864 EEPROM
1 - 628128 128KB static RAM
1 - 7404
2 - 74138
2 - 74153

The '138s are for address decoding as you'd expect.  The '153s
are the MMU.

If you do get some material up on your system, I'd love to look
at it.


More information about the cctech mailing list