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.