A brief history of EMforth.
This (ARM) is
the sixth forth I've written and the eighth I've used.
The first
time I heard of forth was in the early 80's when Peter Milford got up
in a microprocessor group meeting and asked if anyone else was
interested in it. From memory only one other person (Fred Stratford I
believe) had heard of it. I ended spending some time on Great Keppel
island with Peter and his friends. This was quite unplanned. I bumped
into him on the boat going over but was probably too sick for
chatting at the time.
On the island I asked him about forth and remember wandering around with Peter trying to explained - words definitions, dictionaries and a language that could redefine itself or mutate into some other language. Pictures drawn in the sand weren't enough I didn't understand most of what I was told.
Fortunately someone wrote forth for the
2650 microprocessor - which was the processor my home made computer
was based on. I wrote a few programs in it. The main program I wrote
was a 6502 cross assembler. The 6502 was a fraction the price of the
2650 and became my first “embedded” cpu.
The
assembler was a regular two pass assembler because I didn't
understand how good a single pass forth style assembler was.
After the 6502 I used the rockwell 6511Q –
a 6502 based micro-controller. Rockwell released a forth based
version of this chip and I extensively used their forth for many
years.
Around 1985 I got the play with a novix nc4000 (forth
in silcon) based board running CMforth. I modified CMforth into what
I'll claim as my first forth. Around the same time I learned of the
harris semiconductor's forth chip – the RTX 2000. I wrote a
simulator (in rockwell forth) for it and ported my forth to it.
It
was able to recompile itself (slowly) on the simulated cpu and even
though it never ran on a real chip I'll claim this as my second
forth.
The RTX wasn't available for years and was far too
expensive when it was.
Dave Keenan and I got interested in the inmos transputer. Dave designed the boards and I did my third forth port. It supported the transputer's parallel processing constructs. I also added object oriented extensions and a memory manager.
My my fourth forth was for the motorola hc11 which I did many projects with while working for QUT. Many of my projects weren't written in high level forth, they were written in forth assembler.
The fifth forth was for the hc16. I only
did one serious project using the c16 and this involved writing a
crude GUI for a graphical LCD.
Then I didn't use forth for a
decade. The reason was I began using the atmel AVR series of
micro-controllers and these have a Harvard architecture which is not
suitable for running forth.
Towards the end of last year (2006) I needed something with more grunt than the AVR and settled on the atmel SAM7 series. These run forth quite well.